keras 和 tensorflow主要组件

Keras 是一个高级神经网络 API,其主要组件包括:

1. 层(Layers)

1. 全连接层(Dense Layer)

全连接层(也称为密集层)是最常用的一种层,它对输入和输出的每一个神经元都进行全连接。通常用于多层感知机和深度神经网络。

代码示例:

import tensorflow as tf
from keras.layers import Dense# 创建全连接层
dense_layer = Dense(units=64, activation='relu')# 示例
model = tf.keras.Sequential([Dense(units=64, activation='relu', input_shape=(100,)),Dense(units=10, activation='softmax')
])

2. 卷积层(Convolutional Layer)

卷积层主要用于处理图像数据,它通过卷积操作提取数据中的局部特征,广泛应用于卷积神经网络(CNN)。

代码示例:

import tensorflow as tf
from keras.layers import Conv2D# 创建卷积层
conv_layer = Conv2D(filters=32, kernel_size=(3, 3), activation='relu')# 示例
model = tf.keras.Sequential([Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(64, 64, 3)),Conv2D(filters=64, kernel_size=(3, 3), activation='relu')
])

3. 池化层(Pooling Layer)

池化层用于减少数据的维度,同时保留重要的特征。常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。

代码示例:

import tensorflow as tf
from keras.layers import MaxPooling2D, Conv2D# 创建最大池化层
max_pooling_layer = MaxPooling2D(pool_size=(2, 2))# 示例
model = tf.keras.Sequential([Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(64, 64, 3)),MaxPooling2D(pool_size=(2, 2))
])

4. 循环层(Recurrent Layer)

循环层(如 LSTM 和 GRU)用于处理序列数据,例如时间序列或文本数据。它们通过记忆前后状态来捕捉数据的时序信息。

代码示例:

import tensorflow as tf
from keras.layers import LSTM, Dense# 创建 LSTM 层
lstm_layer = LSTM(units=128)# 示例
model = tf.keras.Sequential([LSTM(units=128, input_shape=(100, 1)),Dense(units=10, activation='softmax')
])

5. 嵌入层(Embedding Layer)

嵌入层用于将离散的词汇或类别转化为连续的低维向量,通常应用于自然语言处理任务。

代码示例:

import tensorflow as tf
from keras.layers import Embedding,LSTM,Dense# 创建嵌入层
embedding_layer = Embedding(input_dim=10000, output_dim=64)# 示例
model = tf.keras.Sequential([Embedding(input_dim=10000, output_dim=64, input_length=100),LSTM(units=128),Dense(units=10, activation='softmax')
])

6. 正则化层(Regularization Layer)

正则化层包括 Dropout 和 Batch Normalization 层,帮助防止过拟合并提高模型的泛化能力。

代码示例:

import tensorflow as tf
from keras.layers import Dropout, BatchNormalization, Dense# 创建 Dropout 层
dropout_layer = Dropout(rate=0.5)# 创建 Batch Normalization 层
batch_norm_layer = BatchNormalization()# 示例
model = tf.keras.Sequential([Dense(units=64, activation='relu', input_shape=(100,)),BatchNormalization(),Dropout(rate=0.5),Dense(units=10, activation='softmax')
])

7. Flatten 层

Flatten 层用于将多维的输入数据展平成一维,通常在卷积层和全连接层之间使用。

代码示例:

import tensorflow as tf
from keras.layers import Flatten, Conv2D, Dense# 创建 Flatten 层
flatten_layer = Flatten()# 示例
model = tf.keras.Sequential([Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(64, 64, 3)),Flatten(),Dense(units=10, activation='softmax')
])

2. 模型(Models)

Keras 提供两种模型构建方式:

  • 顺序模型(Sequential Model):按顺序构建的层次模型。
    from keras.models import Sequential
    from keras.layers import Densemodel = Sequential()
    model.add(Dense(32, input_shape=(784,)))
    model.add(Dense(10, activation='softmax'))
    
  • 函数式 API(Functional API):构建复杂模型如多输入、多输出模型。
    from keras.models import Model
    from keras.layers import Input, Denseinputs = Input(shape=(784,))
    x = Dense(64, activation='relu')(inputs)
    outputs = Dense(10, activation='softmax')(x)
    model = Model(inputs=inputs, outputs=outputs)
    

2.损失函数

1. 均方误差(Mean Squared Error, MSE)

  • 数学表达:
    [ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 ]
  • 解释:均方误差是预测值与真实值差值的平方的平均值,适用于回归问题,对大误差有较大惩罚。
  • 代码实现(使用TensorFlow):
    import tensorflow as tfdef mse_loss(y_true, y_pred):return tf.reduce_mean(tf.square(y_true - y_pred))# 示例
    y_true = tf.constant([1.0, 2.0, 3.0])
    y_pred = tf.constant([1.1, 2.1, 2.9])
    mse = mse_loss(y_true, y_pred)
    print("MSE:", mse.numpy())
    

2. 平均绝对误差(Mean Absolute Error, MAE)

  • 数学表达:

    [ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| ]

  • 解释:平均绝对误差是预测值与真实值差值的绝对值的平均值,对异常值敏感性较低。

  • 代码实现(使用TensorFlow):

    def mae_loss(y_true, y_pred):return tf.reduce_mean(tf.abs(y_true - y_pred))# 示例
    mae = mae_loss(y_true, y_pred)
    print("MAE:", mae.numpy())
    

3. 交叉熵损失(Cross-Entropy Loss)

  • 二分类问题:
    [ \text{Binary Cross-Entropy} = -\frac{1}{n} \sum_{i=1}^{n} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)] ]
  • 多分类问题:
    [ \text{Categorical Cross-Entropy} = -\frac{1}{n} \sum_{i=1}^{n} \sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c}) ]
  • 解释:交叉熵损失用于分类问题,衡量预测概率分布与真实分布之间的差异。
  • 代码实现(使用TensorFlow):
    def binary_crossentropy_loss(y_true, y_pred):return tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels=y_true, logits=y_pred))def categorical_crossentropy_loss(y_true, y_pred):return tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true, logits=y_pred))# 示例
    y_true_binary = tf.constant([1.0, 0.0, 1.0])
    y_pred_binary = tf.constant([0.8, 0.2, 0.6])
    bce = binary_crossentropy_loss(y_true_binary, y_pred_binary)
    print("Binary Cross-Entropy:", bce.numpy())
    

4. Huber损失(Huber Loss)

  • 数学表达:
    [ \text{Huber Loss} =
    \begin{cases}
    \frac{1}{2} (y_i - \hat{y}_i)^2 & \text{if } |y_i - \hat{y}_i| \leq \delta \
    \delta |y_i - \hat{y}_i| - \frac{1}{2} \delta^2 & \text{otherwise}
    \end{cases} ]
  • 解释:Huber损失结合了MSE和MAE的优点,对小误差使用平方惩罚,大误差使用线性惩罚,减少对异常值的敏感性。
  • 代码实现(使用TensorFlow):
    def huber_loss(y_true, y_pred, delta=1.0):error = y_true - y_predis_small_error = tf.abs(error) <= deltasmall_error_loss = tf.square(error) / 2large_error_loss = delta * (tf.abs(error) - delta / 2)return tf.reduce_mean(tf.where(is_small_error, small_error_loss, large_error_loss))# 示例
    huber = huber_loss(y_true, y_pred)
    print("Huber Loss:", huber.numpy())
    

5. Kullback-Leibler散度(KL散度)

  • 数学表达:
    [ \text{KL}(P||Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} ]
  • 解释:KL散度衡量两个概率分布之间的差异,在机器学习中用于衡量预测分布与真实分布之间的差异。
  • 代码实现(使用TensorFlow):
    def kl_divergence(p, q):return tf.reduce_sum(p * tf.math.log(p / q))# 示例
    p = tf.constant([0.4, 0.6])
    q = tf.constant([0.5, 0.5])
    kl_div = kl_divergence(p, q)
    print("KL Divergence:", kl_div.numpy())
    

6. 对比损失(Contrastive Loss)

  • 数学表达:
    [ \text{Contrastive Loss} = \frac{1}{2N} \sum_{i=1}^{N} \left[ y_i d^2 + (1 - y_i) \max(0, m - d)^2 \right] ]
  • 解释:对比损失用于度量学习,拉近相似样本对的距离,拉远不相似样本对的距离。
  • 代码实现(使用TensorFlow):
    def contrastive_loss(y_true, y_pred, margin=1.0):square_pred = tf.square(y_pred)margin_square = tf.square(tf.maximum(margin - y_pred, 0))return tf.reduce_mean(y_true * square_pred + (1 - y_true) * margin_square)# 示例
    y_true = tf.constant([1.0, 0.0, 1.0])
    y_pred = tf.constant([0.5, 0.3, 0.7])
    contrastive = contrastive_loss(y_true, y_pred)
    print("Contrastive Loss:", contrastive.numpy())
    

7. 感知损失(Perceptual Loss)

  • 解释:感知损失通过比较高层次特征来度量图像之间的差异,常用于图像生成任务。

  • 代码实现

    	  import tensorflow as tffrom keras.applications import VGG16from keras.models import Modelvgg = VGG16(include_top=False, weights='imagenet', input_shape=(224, 224, 3))feature_extractor = Model(inputs=vgg.input, outputs=vgg.get_layer('block3_conv3').output)def perceptual_loss(y_true, y_pred):true_features = feature_extractor(y_true)pred_features = feature_extractor(y_pred)return tf.reduce_mean(tf.square(true_features - pred_features))# 示例# y_true 和 y_pred 应该是形状为 (batch_size, 224, 224, 3) 的图像张量
    

4. 优化器(Optimizers)

1. 随机梯度下降(Stochastic Gradient Descent, SGD)

SGD是一种基本的优化方法,它在每个样本上计算梯度并更新参数。可以添加动量来加速收敛。

代码实现:

import tensorflow as tf
from keras.optimizers import SGD# 创建优化器
optimizer = SGD(learning_rate=0.01, momentum=0.9)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

2. RMSProp

RMSProp优化器通过对梯度平方的加权平均来调整学习率,从而加速训练。

代码实现:

import tensorflow as tf
from keras.optimizers import RMSprop# 创建优化器
optimizer = RMSprop(learning_rate=0.001)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

3. Adam

Adam优化器结合了动量和RMSProp的优点,自动调整学习率,非常适合处理大型数据集和高维空间。

代码实现:

import tensorflow as tf
from keras.optimizers import Adam# 创建优化器
optimizer = Adam(learning_rate=0.001)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

4. Adagrad

Adagrad通过对每个参数的梯度平方和进行调整,适合处理稀疏数据,但可能会导致学习率过快衰减。

代码实现:

import tensorflow as tf
from keras.optimizers import Adagrad# 创建优化器
optimizer = Adagrad(learning_rate=0.01)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

5. Adadelta

Adadelta是对Adagrad的改进,它通过限制累积的梯度平方和来防止学习率衰减过快。

代码实现:

import tensorflow as tf
from keras.optimizers import Adadelta# 创建优化器
optimizer = Adadelta(learning_rate=1.0)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

6. Adamax

Adamax是Adam优化器的一个变种,它在某些情况下比Adam更稳定。

代码实现:

import tensorflow as tf
from keras.optimizers import Adamax# 创建优化器
optimizer = Adamax(learning_rate=0.002)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

7. Nadam

Nadam是Adam和Nesterov加速梯度(NAG)的结合,进一步提升了Adam的性能。

代码实现:

import tensorflow as tf
from keras.optimizers import Nadam# 创建优化器
optimizer = Nadam(learning_rate=0.001)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer=optimizer, loss='mse')

5. 指标(Metrics)

1. 回归模型性能指标

均方误差(Mean Squared Error, MSE)
import tensorflow as tf
from keras.metrics import MeanSquaredError# 创建评估指标
mse_metric = MeanSquaredError()# 示例
y_true = tf.constant([1.0, 2.0, 3.0])
y_pred = tf.constant([1.1, 2.1, 2.9])
mse_metric.update_state(y_true, y_pred)
mse = mse_metric.result().numpy()
print("MSE:", mse)
平均绝对误差(Mean Absolute Error, MAE)
import tensorflow as tf
from keras.metrics import MeanAbsoluteError# 创建评估指标
mae_metric = MeanAbsoluteError()# 示例
y_true = tf.constant([1.0, 2.0, 3.0])
y_pred = tf.constant([1.1, 2.1, 2.9])
mae_metric.update_state(y_true, y_pred)
mae = mae_metric.result().numpy()
print("MAE:", mae)

2. 分类模型性能指标

准确率(Accuracy)
import tensorflow as tf
from keras.metrics import Accuracy# 创建评估指标
accuracy_metric = Accuracy()# 示例
y_true = tf.constant([1, 0, 1, 1])
y_pred = tf.constant([1, 0, 0, 1])
accuracy_metric.update_state(y_true, y_pred)
accuracy = accuracy_metric.result().numpy()
print("Accuracy:", accuracy)
精确率和召回率(Precision and Recall)
import tensorflow as tf
from keras.metrics import Precision, Recall# 创建评估指标
precision_metric = Precision()
recall_metric = Recall()# 示例
y_true = tf.constant([1, 0, 1, 1])
y_pred = tf.constant([1, 0, 0, 1])
precision_metric.update_state(y_true, y_pred)
recall_metric.update_state(y_true, y_pred)
precision = precision_metric.result().numpy()
recall = recall_metric.result().numpy()
print("Precision:", precision)
print("Recall:", recall)
F1分数(F1 Score)
import tensorflow as tf
from keras.metrics import Precision, Recall# 创建评估指标
precision_metric = Precision()
recall_metric = Recall()# 示例
y_true = tf.constant([1, 0, 1, 1])
y_pred = tf.constant([1, 0, 0, 1])
precision_metric.update_state(y_true, y_pred)
recall_metric.update_state(y_true, y_pred)
precision = precision_metric.result().numpy()
recall = recall_metric.result().numpy()
f1_score = 2 * (precision * recall) / (precision + recall)
print("F1 Score:", f1_score)
ROC-AUC(Receiver Operating Characteristic - Area Under Curve)
import tensorflow as tf
from keras.metrics import AUC# 创建评估指标
auc_metric = AUC()# 示例
y_true = tf.constant([0, 0, 1, 1])
y_pred = tf.constant([0.1, 0.4, 0.35, 0.8])
auc_metric.update_state(y_true, y_pred)
auc = auc_metric.result().numpy()
print("AUC:", auc)

6. 回调函数(Callbacks)

1. ModelCheckpoint

ModelCheckpoint 回调函数用于在训练过程中保存模型的权重。可以根据验证集的表现保存最好的模型,或在每个 epoch 后保存。

代码实现:

import tensorflow as tf
from keras.callbacks import ModelCheckpoint# 创建回调函数
checkpoint_callback = ModelCheckpoint(filepath='model.{epoch:02d}-{val_loss:.2f}.h5',save_best_only=True,monitor='val_loss',mode='min'
)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=10, callbacks=[checkpoint_callback])

2. EarlyStopping

EarlyStopping 回调函数用于监控某个指标,如果该指标在若干个 epoch 内没有改善,则提前终止训练,以防止过拟合。

代码实现:

import tensorflow as tf
from keras.callbacks import EarlyStopping# 创建回调函数
early_stopping_callback = EarlyStopping(monitor='val_loss',patience=3,mode='min'
)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=10, callbacks=[early_stopping_callback])

3. ReduceLROnPlateau

ReduceLROnPlateau 回调函数用于当指标在若干个 epoch 内没有改善时,减少学习率,以达到更好的训练效果。

代码实现:

import tensorflow as tf
from keras.callbacks import ReduceLROnPlateau# 创建回调函数
reduce_lr_callback = ReduceLROnPlateau(monitor='val_loss',factor=0.1,patience=3,mode='min'
)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=10, callbacks=[reduce_lr_callback])

4. TensorBoard

TensorBoard 回调函数用于可视化训练过程中的指标和模型架构。它会生成日志文件,可以用 TensorBoard 工具进行可视化。

代码实现:

import tensorflow as tf
from keras.callbacks import TensorBoard# 创建回调函数
tensorboard_callback = TensorBoard(log_dir='./logs',histogram_freq=1
)# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=10, callbacks=[tensorboard_callback])

5. 自定义回调函数

除了内置的回调函数,Keras 还允许定义自己的回调函数。自定义回调函数需要继承 tf.keras.callbacks.Callback 类,并重写相应的方法。

代码实现:

import tensorflow as tfclass CustomCallback(tf.keras.callbacks.Callback):def on_epoch_end(self, epoch, logs=None):if logs.get('val_loss') < 0.2:print("Validation loss is less than 0.2, stopping training!")self.model.stop_training = True# 示例
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1, input_shape=(10,))])
model.compile(optimizer='adam', loss='mse')
model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=10, callbacks=[CustomCallback()])

示例代码下面是一个简单的 Keras 示例:


from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.utils import to_categorical# 加载数据
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(6000, 28*28).astype('float32') / 255
x_test = x_test.reshape(10000, 28*28).astype('float32') / 255
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)# 构建模型
model = Sequential()
model.add(Flatten(input_shape=(28*28,)))
model.add(Dense(512, activation='relu'))
model.add(Dense(10, activation='softmax'))# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=128, validation_split=0.2)# 评估模型
score = model.evaluate(x_test, y_test)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

TF 主要组件

1. 张量(Tensor)

张量是 TensorFlow 的基本数据结构。它是一个多维数组,可以表示标量、向量、矩阵等数据。

import tensorflow as tf# 创建一个常量张量
tensor = tf.constant([[1, 2], [3, 4]])
print(tensor)

2. 变量(Variable)

变量是一个特殊的张量,它的值可以在训练过程中改变。

# 创建一个变量
variable = tf.Variable([[1.0, 2.0], [3.0, 4.0]])
print(variable)# 修改变量的值
variable.assign([[5.0, 6.0], [7.0, 8.0]])
print(variable)

3. 操作(Operations)

操作是对张量进行计算的函数。例如,加法、矩阵乘法等。

# 创建两个张量
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])# 执行矩阵乘法操作
result = tf.matmul(a, b)
print(result)

4. 自动微分(Automatic Differentiation)

TensorFlow 提供了自动微分功能,可以轻松计算梯度。

# 定义一个变量
x = tf.Variable(3.0)# 定义一个函数
with tf.GradientTape() as tape:y = x**2# 计算梯度
grad = tape.gradient(y, x)
print(grad)

5. 神经网络层(Layers)

TensorFlow 包含了许多预定义的神经网络层,可以方便地构建神经网络模型。

from keras import layers# 创建一个全连接层
dense_layer = layers.Dense(units=10, activation='relu')# 应用层到一个输入张量
input_tensor = tf.constant([[1.0, 2.0, 3.0]])
output_tensor = dense_layer(input_tensor)
print(output_tensor)

6. 模型(Model)

使用 Keras 接口,TensorFlow 可以轻松定义、训练和评估模型。

from keras import models, layers# 定义一个简单的顺序模型
model = models.Sequential()
model.add(layers.Dense(10, activation='relu', input_shape=(3,)))
model.add(layers.Dense(1))# 编译模型
model.compile(optimizer='adam', loss='mse')# 查看模型架构
model.summary()

7. 训练与评估(Training and Evaluation)

TensorFlow 提供了简单的方法来训练和评估模型。

import numpy as np# 生成一些随机数据
x_train = np.random.rand(100, 3)
y_train = np.random.rand(100, 1)# 训练模型
model.fit(x_train, y_train, epochs=5)# 评估模型
loss = model.evaluate(x_train, y_train)
print(f'Loss: {loss}')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采集罗克韦尔AB、西门子等PLC数据发布成HTTP接口

智能网关IGT-DSER集成了多种PLC的原厂协议&#xff0c;方便实现各种PLC的原厂协议转换为HTTP协议的服务端&#xff0c;通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址&#xff0c;即可接收来自客户端的GET、PUT和POST命令&#xff0c;解析和打包JSON文件(JSON文件格…

【深度学习】Precision、Accuracy的区别,精确率与准确率:深度学习多分类问题中的性能评估详解

在深度学习的多分类问题中&#xff0c;Precision&#xff08;精确率&#xff09;和Accuracy&#xff08;准确率&#xff09;是两种常用的性能评估指标&#xff0c;它们各自有不同的定义和用途。 Precision&#xff08;精确率&#xff09;的中文发音是&#xff1a;pǔ rēi xī…

vscode 调试

VScode 调试教程 tasks.json和launch.json的设置&#xff08;超详细&#xff09;_vscode launch.json在哪-CSDN博客 launch.json {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, v…

路劲抛出的最后一根稻草,还是要用力抓住

6月11日&#xff0c;路劲发布公告&#xff0c;主要内容是对旗下存续的5笔美元高级债及1笔美元永续债提出展期&#xff0c;债务压力显性化&#xff0c;拿出诚意预付一部分现金&#xff0c;同时给部分债权人提供离场机会&#xff0c;最大化保障其权益。 路劲的这一动作皆在意料之…

计算机网络知识

一、LVS 什么是LVS 简称&#xff1a;Linux虚拟服务器&#xff0c;是一个虚拟的服务器集群系统&#xff0c;使用负载均衡技术将多态服务器组成一个虚拟服务器。它为适应快速增长的网络访问需求提供了一个负载能力易于扩展&#xff0c;而价格低廉的解决方案。大量的访问请求&am…

代码随想录算法训练营第二十七天

题目&#xff1a;122. 买卖股票的最佳时机 II 本题首先要清楚两点&#xff1a; 只有一只股票&#xff01;当前只有买股票或者卖股票的操作 想获得利润至少要两天为一个交易单元。 局部最优&#xff1a;收集每天的正利润&#xff0c;全局最优&#xff1a;求得最大利润。 我…

PHP安装配置

文章目录 1.下载PHP2.配置环境变量3.Apache安装配置 1.下载PHP PHP即“超文本预处理器”&#xff0c;是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言&#xff0c;与C语言类似&#xff0c;是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法…

北京职场社交app开发,“职”在必行

工作一直是人们日常生活中占比较大的一部分&#xff0c;在做好本职工作的同时&#xff0c;职场社交也同样重要。目前&#xff0c;北京职场社交app不仅帮助求职者寻求工作&#xff0c;而且为工作者提供了获取信息与机遇的平台。 一&#xff0e; 北京职场社交app面向的用户群体 …

怎么管理网站的数据

每一个网站都会有很多的数据&#xff0c;这些数据的来源&#xff0c;有一些是直接把数据存放在运行文件里面&#xff0c;有一些则是存放在数据库里面&#xff0c;如MySQL、SQL Server等等&#xff0c;这些数据库都是需要安装指定的数据库环境才能运行起来&#xff0c;数据库的存…

Mybatis --- 动态SQL 和数据库连接池

文章目录 一、什么是动态SQL 重要性二、动态SQL的编写 ---注解三、动态SQL的编写 ---xml3.1 增加场景 if标签3.2 处理代码块内容 --- trim 标签3.3 查询场景 where标签3.4 更新场景 set标签3.5 删除场景 <foreach> 循环标签3.6 include、sql标签 代码重复度问题 四、数据…

软考高级论文真题“论大数据lambda架构”

论文真题 大数据处理架构是专门用于处理和分析巨量复杂数据集的软件架构。它通常包括数据收集、存储、处理、分析和可视化等多个层面&#xff0c;旨在从海量、多样化的数据中提取有价值的信息。Lambda架构是大数据平台里最成熟、最稳定的架构&#xff0c;它是一种将批处理和流…

高端的机密,往往只需要最简单的方式泄密

高端的机密&#xff0c;往往只需要最简单的方式泄密。微信聊天、U盘拷贝、邮件外发、网站浏览、地址点击等&#xff0c;泄密行为就在员工的不经意的一瞬间发生。 一般来说&#xff0c;数据泄露有三大主要诱因&#xff1a; 1、利用软件和系统漏洞 软件和系统中的漏洞是黑客获…

5G消息 x 金融 | 数字金融新形态

5G消息 x 金融 | 数字金融新形态 5G 消息基于终端原生入口&#xff0c;可为金融消费者提供轻便安全的服务入口&#xff0c;为金融机构开拓了低成本的客户触达渠道。 5G 消息 X 金融 —— 优势亮点 5G 消息凭借“RCS&#xfe62;Platform&#xfe62;Chatbot”方式构建了银行与客…

通过iDrac8.0安装Windows Server 2022

1:登录iDrac。 2&#xff1a;启动虚拟控制台。 3&#xff1a;点击虚拟机介质。 4&#xff1a;连接虚拟介质。 5&#xff1a;映射CD/DVD 6: 找到本地的安装镜像。映射设备。 7&#xff1a;在下次引导中选择虚拟CD/DVD/ISO引导。 8&#xff1a;可以在电源中选择重置设备启动&…

docker镜像拉取K8s的calico,Pod报错Init:ImagePullBackOff及kubekey生成离线包报错error: Pipeline[ArtifactExportpipe的解决

配置k8s集群出现问题 起初以为是版本问题&#xff0c;最后比对了一下发现没有问题。使用 kubectl describe calico-node-mg9xh -n kube-system命令查看发现docker pull 镜像失败&#xff0c;但是docker国内镜像源早就配置过了。 猜测Docker的缓存可能会导致拉取镜像失败。尝试…

个人云服务器已经被安全合规等卡脖子 建议不要买 买了必定后悔 安全是个大问题 没有能力维护

我的想法 自己买一个云服务器&#xff0c;先自己边做边学习&#xff0c;向往硅谷精神&#xff0c;财富与自由。如果能赚钱&#xff0c;就开个公司。这次到期就放弃了。 我前前后后6年花6000多元买云服务器。业余花了无数的精力&#xff0c;从2018到现在 &#xff0c;也没有折…

基于R-Tree的地理空间数据分析加速

几年前&#xff0c;我正在做一个业余项目。我想创建一个 Web 应用程序&#xff0c;推荐当地的特色景点&#xff0c;例如咖啡馆、书店或隐藏的酒吧。我的想法是在地图上显示用户触手可及的所有兴趣点。我的数据集中有数十万个点&#xff0c;我必须巧妙地过滤用户给定范围内的数据…

时序动作定位 | 提取视觉语言预训练与弱监督时间动作定位协同(CVPR 2023)

<Distilling Vision-Language Pre-training to Collaborate with Weakly-Supervised Temporal Action Localization> 摘要 弱监督时态动作定位(WTAL)学习仅使用类别标签来检测和分类动作实例。大多数方法广泛采用现成的基于分类的预训练(CBP)来生成用于动作定位的视频…

一键生成insert,update,delete,的mybatis sql 语句

由于最近写增删改查&#xff0c;对与开发来说&#xff0c;编写一个insert和update 语句是十分耗时耗力的&#xff0c;因为有大量的字段要复制粘贴。粘贴完还要去比对一下有没有漏粘的&#xff0c;很耗费精力&#xff0c;于是就想着写一个sql&#xff0c;通过手动指定哪张表&…

二、C#基本语法

C#是一种面向对象的编程语言。在面向对象的程序设计方法中&#xff0c;程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型&#xff0c;或者说&#xff0c;是相同的class中。 例如&#xff0c;以rectangle&#xff08;矩形&#xff09;对象为例。它具有length和…