《Keras3 深度学习初探:开启Keras3 深度学习之旅》

《Keras3 深度学习初探:开启Keras3 深度学习之旅》

  • 一、Keras3 初印象
  • 二、安装与配置
    • (一)安装 Keras3
    • (二)配置环境
  • 三、模型构建基础
    • (一)序列模型与函数式 API
    • (二)模型的创建与编译
  • 四、模型训练与验证
    • (一)训练过程的控制与监控
    • (二)验证集的使用与评估指标
  • 五、深入 Keras3 功能
    • (一)线性回归模型构建
    • (二)神经网络模型构建
    • (三)数据预处理
  • 六、分布式训练与高级 API 特性
    • (一)Keras3 分布式训练 API
    • (二)函数式 API 的高级特性
  • 七、总结与展望
    • (一)Keras3 的优势总结
    • (二)Keras3 的应用场景总结
    • (三)未来发展潜力展望

一、Keras3 初印象

Keras3 作为深度学习框架,展现出了诸多令人瞩目的特点。首先,易于使用是其突出优势之一。对于初学者而言,它提供了简洁明了的 API,使得构建深度学习模型变得直观易懂。无需深入了解底层复杂的数学和算法,就能够快速上手搭建模型,极大地降低了深度学习的入门门槛。
模块化设计也是 Keras3 的重要特色。每个模块都可以看作是独立的流程或组件,用户可以根据具体需求灵活地组合这些模块,以解决各种深度学习问题。这种模块化的设计不仅提高了代码的可读性和可维护性,还为开发者提供了极大的灵活性和扩展性。
高度可扩展性是 Keras3 的又一亮点。它支持多种后端,包括 TensorFlow、JAX 和 PyTorch。这意味着开发者可以根据项目需求和自身偏好选择最合适的后端,充分利用不同后端的优势。同时,Keras3 还允许用户创建在任何框架中都能以相同方式工作的组件,进一步增强了其可扩展性。例如,通过访问跨所有后端运行的 keras.ops 命名空间,用户可以使用相同的代码实现自定义层、损失、指标和优化器等,在不同的框架中产生完全相同的数值结果。
总之,Keras3 以其易于使用、模块化和高度可扩展性等特点,为深度学习开发者提供了强大而灵活的工具。无论是新手还是经验丰富的专家,都能在 Keras3 中找到适合自己的开发方式,实现创新和突破。

二、安装与配置

(一)安装 Keras3

Anaconda 是一个非常方便的工具,可以帮助我们轻松地安装 Keras3 和 TensorFlow。以下是安装步骤:
首先,确保已经安装了 Anaconda。如果没有安装,可以从 Anaconda 官网下载并按照提示进行安装。
打开 Anaconda Prompt,创建一个新的虚拟环境。例如,可以使用以下命令创建一个名为keras_env的虚拟环境,并且指定 Python 版本为 3.7:

   conda create -n keras_env python=3.7激活虚拟环境:conda activate keras_env安装 TensorFlow。在虚拟环境中,可以使用以下命令安装 TensorFlow:pip install tensorflow安装 Keras。在安装完 TensorFlow 后,可以使用以下命令安装 Keras:pip install keras确认安装成功。打开 Python 交互式环境,输入以下命令:import tensorflowimport keras

如果没有出现错误信息,则说明安装成功。

(二)配置环境

创建深度学习项目虚拟环境的步骤如下:
安装 Anaconda,如上文所述。
打开 Anaconda Prompt,使用conda create命令创建一个新的虚拟环境,并指定 Python 版本和所需的包。例如,可以创建一个名为dl_env的虚拟环境,指定 Python 版本为 3.8,并安装 numpy 和 matplotlib:

   conda create -n dl_env python=3.8 numpy matplotlib激活虚拟环境:conda activate dl_env

根据项目需求安装其他必要的包。例如,如果项目需要使用 TensorFlow 和 Keras,可以使用pip install命令进行安装。
配置环境变量。在某些情况下,可能需要将虚拟环境的路径添加到系统环境变量中,以便在命令行中方便地访问虚拟环境。
定期更新虚拟环境中的包,以确保使用的是最新版本的软件。可以使用conda update和pip install --upgrade命令进行更新。
通过以上步骤,可以创建一个稳定的深度学习开发环境,确保项目的顺利进行。

三、模型构建基础

(一)序列模型与函数式 API

序列模型适用于简单的、线性的堆叠层结构,每个层只需要被添加一次,并且它的输入形状在添加到模型时就已经确定。例如,以下是一个使用序列模型构建简单全连接网络的示例:

from keras.models import Sequential
from keras.layers import Denseseq_model = Sequential()
seq_model.add(Dense(64, activation='relu', input_shape=(100,)))
seq_model.add(Dense(10, activation='softmax'))

而函数式 API 则提供了更大的灵活性,允许创建任意的复杂模型,如具有多个输入和输出的模型,或者具有共享层的模型等。在函数式 API 中,每一层都需要被调用,并返回一个新的 tensor,即输入 tensor 经过层变换后的输出 tensor。例如:

from keras.layers import Input, Dense
from keras.models import Modelinputs = Input(shape=(100,))
x = Dense(64, activation='relu')(inputs)
predictions = Dense(10, activation='softmax')(x)model = Model(inputs=inputs, outputs=predictions)

序列模型在快速构建简单模型时非常方便,但对于复杂的模型结构,函数式 API 更具优势。例如,当需要处理具有层次结构的数据或需要共享层的场景时,函数式 API 能够更好地满足需求。

(二)模型的创建与编译

在 Keras 中,创建模型之后,需要对其进行编译以设定训练参数。编译步骤包括损失函数(loss)、优化器(optimizer)和评估标准(metrics)。
损失函数的选择:
对于多分类问题,通常可以选择 categorical_crossentropy。例如,在构建图像识别模型时,当有多个类别需要预测时,这个损失函数非常适用。
对于二分类问题,可以使用 binary_crossentropy。比如在判断图片中是否有特定物体的任务中,这个损失函数能有效地衡量模型的性能。
对于回归问题,可以考虑 mean_squared_error 或 mean_absolute_error 等损失函数。例如在预测房价的任务中,这些损失函数可以衡量预测值与真实值之间的差异。
优化器的选择:
SGD(随机梯度下降)是一种基本的优化算法,通过迭代更新模型参数来最小化损失函数。可以设置学习率、动量等参数。例如,keras.optimizers.SGD(lr=0.01, momentum=0.9)。
Adam 是一种结合了 RMSprop 和 Momentum 的优化算法,具有较好的性能和稳定性。如 keras.optimizers.Adam()。
还有 RMSprop、Adagrad 等优化器可供选择,不同的优化器适用于不同的问题和数据集。
评估标准的确定:
对于分类问题,通常可以将准确率(accuracy)作为评估标准。此外,还可以根据具体需求选择精确率、召回率等指标。对于回归问题,可以使用均方误差(MSE)、平均绝对误差(MAE)等作为评估标准。
在编译模型时还需要确定其他参数,例如:
loss:根据问题的不同,选择合适的损失函数,如 mean_squared_error、binary_crossentropy 等。
optimizer:可以是字符串标识符如 ‘rmsprop’、‘adagrad’ 等,或者是 keras.optimizers 模块中的优化器类。
metrics:评估模型性能的指标,如准确率、精确率、召回率等。

四、模型训练与验证

(一)训练过程的控制与监控

在 Keras 中,回调函数是在调用 fit 时传入模型的一个对象,它在训练过程中的不同时间点都会被模型调用。回调函数可以访问关于模型状态和性能的所有可用数据,还可以采取行动,如中断训练、保存模型、加载一组不同的权重或者改变模型的状态。
EarlyStopping:如果监控的目标指标在设定的轮数内不再改善,可以使用 EarlyStopping 回调函数来中断训练。例如,这个回调函数可以在刚开始过拟合的时候就中断训练,从而避免用更少的轮次重新训练模型。这个回调函数常与 ModelCheckpoint 结合使用,后者可以在训练过程中持续不断地保存模型(可以选择只保存目前的最佳模型,即一轮结束后具有最佳性能的模型)。

   from keras.callbacks import EarlyStopping, ModelCheckpointcallbacks_list = [EarlyStopping(monitor='acc', patience=1),ModelCheckpoint(filepath='my_model.h5', monitor='val_loss', save_best_only=True)]model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])model.fit(x, y, epochs=10, batch_size=32, callbacks=callbacks_list, validation_data=(x_val, y_val))

ReduceLROnPlateau:如果验证损失不再改善,可以使用 ReduceLROnPlateau 回调函数来降低学习率。在训练过程中如果出现了损失平台(loss plateau),那么增大或减小学习率都是跳出局部最小值的有效策略。

   from keras.callbacks import ReduceLROnPlateaucallbacks_list = [ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10)]model.fit(x, y, epochs=10, batch_size=32, callbacks=callbacks_list, validation_data=(x_val, y_val))

自定义回调函数:读者可以自行编写自己的回调函数,如若项目中需要采取特定行动,实现方式是创建 keras.callbacks.Callback 类的子类。

(二)验证集的使用与评估指标

验证集在模型训练中扮演着重要角色。它用于防止过拟合,在每次 epoch 结束后计算模型在验证集上的性能,如损失和准确率等指标。模型不会利用验证集来训练,即网络的权重不会用验证集的数据训练。
常见的评估指标包括准确率(accuracy)、精确率(precision)、召回率(recall)、F1 分数等。对于分类问题,通常可以将准确率作为主要的评估指标。此外,根据具体问题的需求,还可以选择精确率和召回率等指标。对于回归问题,可以使用均方误差(MSE)、平均绝对误差(MAE)等作为评估标准。
验证集的选取可以从训练集中划分一部分数据出来,例如设置 validation_split 参数为 0.2,则训练集的最后 20% 数据将作为验证集。也可以手动将数据集进行切分,然后在 keras 的 model.fit() 的时候通过 validation_data 参数指定前面切分出来的验证集。
在训练模型时,可以通过观察模型在验证集上的性能来调整超参数,如学习率、批次大小、网络结构等。例如,如果模型在验证集上的准确率不再提高,可以考虑降低学习率或者增加正则化项。同时,使用验证集可以通过 EarlyStopping 机制来提前终止训练,防止过拟合。

五、深入 Keras3 功能

(一)线性回归模型构建

准备数据集:对于线性回归问题,我们可以使用一个简单的数据集来进行演示。例如,我们可以生成一组包含两个特征和一个输出的数据集,其中输出与两个特征之间存在线性关系。以下是使用 Python 的numpy库生成数据集的示例代码:

import numpy as np
from sklearn.model_selection import train_test_split# 生成数据集
X = np.random.rand(100, 2)
y = 2 * X[:, 0] + 3 * X[:, 1] + np.random.randn(100)# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)定义和训练模型:接下来,我们使用 Keras 构建一个简单的线性回归模型。首先,导入必要的库并初始化模型:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense# 初始化模型
model = Sequential()
model.add(Dense(1, input_dim=2))#然后,编译模型,选择合适的优化器和损失函数:
model.compile(optimizer='adam', loss='mean_squared_error')#最后,训练模型:
model.fit(X_train, y_train, epochs=50, batch_size=10, verbose=0)#评估模型:我们可以使用测试集来评估模型的性能。计算预测值与真实值之间的均方误差(MSE):
predictions = model.predict(X_test)
mse = np.mean((y_test - predictions)**2)
print("Mean Squared Error:", mse)

(二)神经网络模型构建

构建简单神经网络模型:我们将构建一个简单的神经网络模型,包含一个隐藏层和一个输出层。以分类问题为例,导入必要的库并初始化模型:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout# 初始化模型
model = Sequential()
model.add(Dense(16, activation='relu', input_dim=10))
model.add(Dropout(0.2))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))#超参数调整与优化:超参数调整是优化模型性能的关键步骤。我们可以尝试不同的超参数组合,如学习率、批次大小、隐藏层神经元数量等。例如,调整学习率:
from tensorflow.keras.optimizers import Adamoptimizer = Adam(learning_rate=0.001)
model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])#或者调整批次大小:
batch_size = 32
model.fit(X_train, y_train, epochs=50, batch_size=batch_size, verbose=0)

通过不断尝试不同的超参数组合,我们可以找到最适合特定问题的模型配置。

(三)数据预处理

重要性阐述:在深度学习中,数据预处理是至关重要的一步。它可以提高模型的性能和泛化能力,减少过拟合的风险。数据预处理包括数据清洗、标准化、归一化等步骤。例如,在图像分类任务中,对图像进行归一化可以使不同图像的像素值范围相同,从而提高模型的训练效率和准确性。
标准化和归一化方法:
标准化:标准化是将数据转换为均值为 0,标准差为 1 的分布。这可以通过减去均值并除以标准差来实现。例如,使用sklearn库的StandardScaler类进行标准化:

from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

归一化:归一化是将数据转换为特定范围内的值,通常是 [0, 1]。这可以通过将数据减去最小值并除以最大值与最小值之差来实现。例如,使用sklearn库的MinMaxScaler类进行归一化:

from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()
X_train_normalized = scaler.fit_transform(X_train)
X_test_normalized = scaler.transform(X_test)

高效加载和处理数据集:在 Keras 中,可以使用tf.data.Dataset来高效地加载和处理数据集。例如,加载图像数据集并进行批处理:

import tensorflow as tf# 假设 image_paths 和 labels 分别是图像路径列表和对应的标签列表
dataset = tf.data.Dataset.from_tensor_slices((image_paths, labels))
dataset = dataset.map(lambda x, y: (tf.io.read_file(x), y))
dataset = dataset.map(lambda image, label: (tf.image.decode_jpeg(image, channels=3), label))
dataset = dataset.batch(32)

通过上述方法,可以高效地加载和处理数据集,提高模型的训练效率。

六、分布式训练与高级 API 特性

(一)Keras3 分布式训练 API

Keras3 的分布式训练 API 为深度学习开发者提供了强大的工具,以加速模型的训练过程并处理大规模数据集和复杂模型。
工作机制:
DeviceMesh 和 TensorLayout:在 Keras 分布式 API 中,keras.distribution.DeviceMesh类代表一个为分布式计算配置的计算设备集群。它将物理设备映射到一个逻辑网格结构,类似于 JAX 的jax.sharding.Mesh和 TensorFlow 的tf.dtensor.Mesh。TensorLayout类则指定了张量如何在DeviceMesh上进行分布,详细说明了张量在对应于DeviceMesh中轴名称的指定轴上的分片。例如,假设有 8 个本地 GPU,可以定义一个 2x4 的设备网格,如下所示:

   devices = jax.devices("gpu")mesh = keras.distribution.DeviceMesh(shape=(2, 4), axis_names=["data", "model"], devices=devices)

分发与抽象类:Distribution类是一个基础抽象类,旨在开发自定义分发策略。它封装了在设备网格上分发模型的变量、输入数据和中间计算所需的核心逻辑。作为最终用户,通常与其子类如DataParallel或ModelParallel进行交互。
DataParallel 的应用:
DataParallel 类是为分布式训练中的数据并行策略设计的,其中模型权重在DeviceMesh中的所有设备上被复制,每个设备处理输入数据的一部分。例如:

# Create a MirroredStrategy to enable Data Parallelism
strategy = tf.distribute.MirroredStrategy()
# Create and compile the model within the strategy scope
with strategy.scope():distributed_model = create_model()distributed_model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Generate some dummy data for demonstration
x_train = np.random.random((1000, 784))
y_train = np.random.randint(10, size=(1000,))
# Train the model with distributed data
distributed_model.fit(x_train, y_train, epochs=10, batch_size=64)

ModelParallel 的应用:
当模型权重过大而无法适应单个加速器时,ModelParallel将非常有用。这种设置允许程序员将模型权重或激活张量分散到DeviceMesh上的所有设备上,并为大型模型启用水平扩展。引入了LayoutMap,它是一个类似于字典的对象,将字符串映射到TensorLayout实例,允许程序员从全局角度为任何权重和中间张量指定TensorLayout。

(二)函数式 API 的高级特性

函数式 API 在 Keras3 中具有强大的高级特性,为构建复杂的深度学习模型提供了极大的灵活性。
多输入多输出模型:
函数式 API 提供了创建具有任意数量输入和输出的模型的能力。这在处理具有多模态输入的任务时非常有用。例如,假设有一个深度学习模型,试图利用用户提供的元数据、文本描述和商品照片来预测二手衣服的市场价格。可以分别为不同的输入创建独立的层,然后将它们合并起来,最后连接到输出层。

input_metadata = Input(shape=(num_metadata_features,))
input_text = Input(shape=(max_text_length,))
input_image = Input(shape=(image_shape,))
# Process each input separately
metadata_layer = Dense(64, activation='relu')(input_metadata)
text_layer = LSTM(64)(input_text)
image_layer = Conv2D(64, activation='relu')(input_image)
# Merge the processed inputs
merged_layer = concatenate([metadata_layer, text_layer, image_layer])
output_price = Dense(1)(merged_layer)
model = Model(inputs=[input_metadata, input_text, input_image], outputs=output_price)

共享层:
可以在模型的不同部分使用同一个层的实例,减少模型的参数数量并提高模型的效率。例如,在判断两个句子的相似度任务中,可以使用一个共享的 LSTM 层处理两个句子的输入,如下所示:

lstm = layers.LSTM(32)
left_input = Input(shape=(None, 128))
left_output = lstm(left_input)
right_input = Input(shape=(None, 128))
right_output = lstm(right_input)
merged = layers.concatenate([left_output, right_output], axis=-1)
prediction = layers.Dense(1, activation='sigmoid')(merged)
model = Model([left_input, right_input], prediction)

模型嵌套:
允许将一个模型作为另一个模型的一部分,实现更加复杂的模型结构。例如,可以构建一个预训练的图像分类模型,然后将其作为一个子模型嵌入到一个更大的模型中,用于处理更复杂的任务。

# Create a pre-trained image classification model
image_input = Input(shape=(image_shape,))
base_model = Sequential([Conv2D(64, activation='relu', input_shape=(image_shape,)),MaxPooling2D(),Flatten(),Dense(10, activation='softmax')
])
image_output = base_model(image_input)
# Create a larger model that embeds the pre-trained model
other_input = Input(shape=(other_features_shape,))
merged = concatenate([image_output, other_input])
final_output = Dense(1)(merged)
nested_model = Model(inputs=[image_input, other_input], outputs=final_output)

七、总结与展望

(一)Keras3 的优势总结

易用性:Keras3 提供了简洁明了的 API,使得无论是深度学习的新手还是经验丰富的专家都能快速上手构建模型。其模块化设计和高度可扩展性进一步增强了代码的可读性和可维护性。
多后端支持:支持 TensorFlow、JAX 和 PyTorch 等多种后端,开发者可以根据项目需求和自身偏好选择最合适的后端,充分利用不同后端的优势。
丰富的功能:提供了全面的 Keras API,包括多种层、指标、损失函数、优化器和回调等。同时,还支持多种高级特性,如多输入多输出模型、共享层和模型嵌套等。
强大的社区支持:拥有庞大的开发者社区,不断更新完善文档,提供丰富的教程和示例,以及及时的问题解答。

(二)Keras3 的应用场景总结

计算机视觉:利用预训练模型进行图像分类、对象检测或图像生成。例如,使用 ResNet 或 VGG 等预训练模型可以快速构建图像分类系统。
自然语言处理:构建复杂的 LSTM、GRU 或 Transformer 模型,用于文本分类、情感分析和机器翻译。通过 Keras3 的函数式 API,可以轻松构建多输入多输出的自然语言处理模型。
强化学习:结合 Keras 与其他 RL 库,构建和训练高效的游戏 AI 或机器人控制系统。Keras3 的灵活性使得它可以与各种强化学习算法相结合。
数据科学竞赛:快速搭建原型,验证并优化模型,提高在各类数据分析竞赛中的竞争力。Keras3 的高效性和易用性使得开发者能够在短时间内构建出强大的模型。

(三)未来发展潜力展望

性能优化:随着硬件技术的不断发展,Keras3 将继续优化其性能,以更好地利用 GPU、TPU 等高性能计算设备。例如,通过进一步优化分布式训练 API,提高大规模模型的训练速度。
多模态融合:在未来,深度学习将越来越多地涉及多模态数据的处理,如文本、图像、音频等。Keras3 可以进一步加强对多模态数据的支持,提供更强大的多模态融合模型构建能力。
自动化机器学习:随着自动化机器学习技术的发展,Keras3 有望提供更多的自动化工具,帮助开发者更快速地找到最佳的模型架构和超参数组合。例如,通过自动搜索算法和强化学习技术,实现模型的自动优化。
跨框架兼容性的进一步提升:虽然 Keras3 已经实现了对多种后端的支持,但在未来,跨框架兼容性还有望进一步提升。这将使得开发者能够更加轻松地在不同的深度学习框架之间切换,充分利用各个框架的优势。
应用领域的拓展:随着深度学习技术的不断发展,Keras3 将在更多的领域得到应用,如医疗、金融、交通等。例如,在医疗领域,可以利用 Keras3 构建疾病诊断模型;在金融领域,可以构建风险评估模型等。
总之,Keras3 作为一个强大的深度学习框架,具有巨大的发展潜力。在未来,它将继续为深度学习开发者提供强大的工具,推动深度学习技术的不断发展和应用。

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

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

相关文章

动态规划 01背包(算法)

现有四个物品,小偷的背包容量为8,怎么可以偷得价值较多的物品 如: 物品编号: 1 2 3 4 物品容量: 2 3 4 5 物品价值: 3 4 5 8 记f(k,w) ,当背包容量为w,可以偷k件物品…

引领数字时代:万码优才如何变革IT人才招聘新体验(这里有更精准的推荐)

目录 引领数字时代:万码优才如何变革IT人才招聘新体验引领未来科技,精准链接IT精英精准匹配,高效对接海量资源,覆盖广泛优化体验,简化流程 全面升级:AI赋能数字人才职业成长AI模拟面试职场千问智能简历评估…

Rocky Linux 9安装后无法远程ssh密码登录解决

在Rocky Linux 9版本中,为了增加安全性,默认情况下禁用SSH root密码登录。这是系统默认设定的规则,我们同样也可以更改它。   允许Rocky Linux 9 root用户通过ssh登录方法: 1.编辑SSH配置文件 2.找到以下内容 PermitRootLogin …

1.2 图像处理基本操作

在本实战中,我们将学习如何使用OpenCV进行基本的图像处理操作。首先,我们将通过cv2.imread()函数读取图像,并使用cv2.imshow()在窗口中显示它。接着,我们将探索如何通过cv2.imwrite()保存图像,并设置不同的参数以控制图…

【C++】哈希表模拟:开散列技术与哈希冲突处理

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

「Mac畅玩鸿蒙与硬件18」鸿蒙UI组件篇8 - 高级动画效果与缓动控制

高级动画可以显著提升用户体验,为应用界面带来更流畅的视觉效果。本篇将深入介绍鸿蒙框架的高级动画,包括弹性动画、透明度渐变和旋转缩放组合动画等示例。 关键词 高级动画弹性缓动自动动画缓动曲线 一、Animation 组件的高级缓动曲线 缓动曲线&#…

SpringBoot源码解析(二):启动流程之引导上下文DefaultBootstrapContext

SpringBoot源码系列文章 SpringBoot源码解析(一):启动流程之SpringApplication构造方法 SpringBoot源码解析(二):启动流程之引导上下文DefaultBootstrapContext 目录 前言一、入口二、DefaultBootstrapContext1、BootstrapRegistry接口2、BootstrapCon…

ELK之路第三步——日志收集筛选logstash和filebeat

logstash和filebeat(偷懒版) 前言logstash1.下载2.修改配置文件3.测试启动4.文件启动 filebeat1.下载2.配置3.启动 前言 上一篇,我们说到了可视化界面Kibana的安装,这一篇,会简单介绍logstash和filebeat的安装和配置。…

Python毕业设计选题:基于Hadoop的租房数据分析系统的设计与实现

开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 房屋信息详情 个人中心 管理员登录界面 管理员功能界面 用户管理界面 房屋信…

深度学习笔记之BERT(一)BERT的基本认识

深度学习笔记之BERT——BERT的基本认识 引言回顾:Transformer的策略回顾:Word2vec的策略和局限性 BERT \text{BERT} BERT的基本理念抽象的双向BERT的预训练策略 预训练与微调 引言 从本节开始,将介绍 BERT \text{BERT} BERT系列模型以及其常…

YOLOv8改进,YOLOv8引入ResCBAM注意力机制,二次创新C2f结构

摘要 腕部创伤甚至骨折在日常生活中经常发生,在儿童中,他们占骨折病例的很大比例。在进行手术之前,外科医生通常会要求患者先进行 X 光成像,并根据放射科医生的分析进行手术准备。随着神经网络的发展,“You Only Look Once”(YOLO)系列模型在骨折检测中的应用越来越广泛…

CSS--两列网页布局,三列布局和多行多列布局

两列网页布局 两列网页布局实验 先将一个未运用浮动效果的网页结构写出来 <style>header{/* 给页眉设置宽高和样式 */width:1000px;height: 40px;background-color: gray;border: 3px brown solid;margin-bottom: 5px;}article{width:1000px;height: 600px;background-c…

如何使用Web-Check和cpolar实现安全的远程网站监测与管理

文章目录 前言1.关于Web-Check2.功能特点3.安装Docker4.创建并启动Web-Check容器5.本地访问测试6.公网远程访问本地Web-Check7.内网穿透工具安装8.创建远程连接公网地址9.使用固定公网地址远程访问 前言 本期给大家分享一个网站检测工具Web-Check&#xff0c;能帮你全面了解网…

Webserver(2.6)信号

目录 信号的概念信号相关的函数killraiseabortalarm1s钟电脑能数多少个数&#xff1f; setitimer过3s以后&#xff0c;每隔2s定时一次 信号捕捉函数signalsigaction 信号集sigprocmask编写一个程序&#xff0c;把所有的常规信号未决状态打印到屏幕 sigchld信号 信号的概念 比如…

AprilTag在相机标定中的应用简介

1. AprilTag简介 相机标定用的标靶类型多样,常见的形式有棋盘格标靶和圆形标靶。今天要介绍的AprilTag比较特别,它是一种编码形式的标靶。其官网为AprilTag,它是一套视觉基准系统,包含标靶编解码方法(Tag生成)和检测算法(Tag检测),可用于AR、机器人、相机标定等领域。…

Qt报错QOCI driver not loaded且QOCI available的解决方法

参考 Linux Qt 6安装Oracle QOCI SQL Driver插件&#xff08;适用WSL&#xff09; 安装 QOCI 插件完成后运行 Qt 项目报错&#xff1a; qt.sql.qsqldatabase: QSqlDatabase: QOCI driver not loaded qt.sql.qsqldatabase: QSqlDatabase: available drivers: QMIMER QPSQL QODBC…

【MySQL】 穿透学习数据库理论与知识剖析

前言&#xff1a;本节内容讲述一些数据库的基本概念。 第一个部分就是数据库相关的概念&#xff0c; 比如什么是数据库&#xff0c; 如何理解mysqld以及mysql。第二部分理解数据库和表在系统层面的形式。 第三部分就是mysql的一些操作分类。 第四部分就是数据库的插件配置这些。…

Web Broker(Web服务应用程序)入门教程(1)

1、介绍 Web Broker 组件&#xff08;位于工具面板的“Internet”选项卡中&#xff09;可以帮助您创建与特定统一资源标识符&#xff08;URI&#xff09;相关联的事件处理程序。当处理完成后&#xff0c;您可以通过编程方式构建 HTML 或 XML 文档&#xff0c;并将它们传输给客…

网络安全法详细介绍——爬虫教程

目录 [TOC](目录)一、网络安全法详细介绍1. 网络安全法的主要条款与作用2. 网络安全法与爬虫的关系3. 合法使用爬虫的指南 二、爬虫的详细教程1. 准备环境与安装工具2. 使用requests库发送请求3. 解析HTML内容4. 使用robots.txt规范爬虫行为5. 设置请求间隔6. 数据清洗与存储 三…

25国考照片处理器使用流程图解❗

1、打开“国家公务员局”网站&#xff0c;进入2025公务员专题&#xff0c;找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”&#xff0c;再找到“照片处理工具”双击。 6、双击后会进入这样的界面&#xff0c;点击&…