用途
该技能用于使用 TensorFlow 构建和训练神经网络,既覆盖 Keras 高级 API,也覆盖底层自定义实现。资料说明其范围从简单的顺序模型,到具有多输出、自定义层和高级训练技术的复杂自定义架构。
主要能力
资料中展示的能力包括:
- 使用 Keras Sequential API 以线性堆叠层的方式构建神经网络,例如 MNIST 图像分类示例。
- 构建卷积神经网络(CNN)用于图像分类,示例包括通用 CNN 模型函数和 CIFAR-10 CNN 架构。
- 通过继承 tf.keras.layers.Layer 创建可复用的自定义层,示例包括自定义 Dense 层、残差块(ResidualBlock)以及使用 TF NumPy 的自定义投影层(ProjectionLayer)。
- 通过继承 tf.keras.Model 构建复杂架构,示例包括多任务模型(MultiTaskModel)和三层神经网络模块(Model)。
- 循环神经网络相关实现,示例包括自定义 GRU 单元(GRUCell)、自定义 Dense 层实现以及顺序 RNN 模型(Model)。
- 训练配置,示例包括模型参数(词表大小、嵌入维度、RNN 单元数、批大小、缓冲区大小)以及 MNIST 训练常量。
- 训练后量化(Post-Training Quantization),示例加载 MNIST 数据集、归一化、定义模型架构、编译并训练。
使用方式
资料以代码示例形式展示使用方式,主要步骤包括:
- 加载数据集,例如使用 keras.datasets.mnist.load_data() 加载 MNIST。
- 预处理数据,例如将像素值归一化到 0 到 1 之间,并调整形状。
- 构建模型,可使用 keras.Sequential 堆叠层,或通过继承 Layer / Model 自定义。
- 编译模型,指定优化器、损失函数和评估指标,例如 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])。
- 训练模型,例如 model.fit(x_train, y_train, batch_size=32, epochs=5, validation_split=0.2, verbose=1)。
- 评估与预测,例如 model.evaluate 和 model.predict。
- 保存与加载模型,例如 model.save('mnist_model.h5') 和 keras.models.load_model('mnist_model.h5')。
适用场景
资料中“When to Use This Skill”列出以下场景:
- 使用 CNN 构建图像分类模型
- 使用 RNN 或 transformer 创建文本处理模型
- 为特定用例实现自定义层架构
- 设计具有共享表示的多任务学习模型
- 为表格数据训练顺序模型
- 实现残差连接或跳跃连接
- 为离散输入创建嵌入层
- 构建自编码器或生成模型
- 使用自定义头部微调预训练模型
- 在自定义架构中实现注意力机制
- 创建时间序列预测模型
- 设计强化学习策略网络
- 构建孪生网络(siamese networks)
限制
资料未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤之外的额外限制说明,这些方面暂未提供。