model.save(args.train_dir + "/model.keras")
# 推荐使用.keras格式
2、代码解读。代码不长,deepseek分为三大块,
一是参数解析模块。
-
使用argparse模块创建命令行参数解析器12 -
定义了6个常用训练参数,包含默认值和类型声明 -
参数解析结果存储在args对象中供后续使用
![对DogsVsCats例子的调优模型训练过程 对DogsVsCats例子的调优模型训练过程]()
二是数据预处理函数。
-
实现图像解码、尺寸调整和归一化标准化流程 -
输出尺寸150x150的归一化图像张量
三是主程序逻辑。
(1). 数据准备
(2). 数据集构建
-
使用tf.data API构建高效数据管道14 -
启用并行处理和预取优化加速训练
(3). 模型构建
-
使用Keras Sequential API构建卷积神经网络16 -
包含4个卷积块+全连接层的经典结构 -
使用Adam优化器和交叉熵损失函数
(4). 模型训练与保存
(5). 测试评估
- (1).数据管道优化
:使用 tf.data.Dataset
的map、batch、prefetch等方法构建高效数据流水线 - (2).图像处理
:通过 tf.image
模块实现标准化图像预处理 - (3).模型架构
:采用经典卷积神经网络结构,包含: -
4个卷积+池化层堆叠 -
Dropout层防止过拟合 -
最终softmax二分类输出 - (4).训练配置
:使用Adam优化器和学习率调度 - (5).模型保存
:采用Keras推荐的 .keras
格式保存完整模型
这两行代码是对train_dataset
进行进一步的数据预处理和增强
第一行代码
这行代码的作用是对train_dataset
中的每一个元素(即每一个图像和对应的标签)应用_decode_and_resize
函数。这个函数会读取图像文件,解码JPEG格式,调整图像大小到150x150,并进行归一化处理。
map_func=_decode_and_resize
:指定要应用的函数。 num_parallel_calls=tf.data.experimental.AUTOTUNE
:这个参数允许TensorFlow自动选择并行调用的数量,以最大化数据处理的吞吐量。在TensorFlow 2.x中, tf.data.experimental.AUTOTUNE
已经被简化为tf.data.AUTOTUNE
。
第二行代码
这行代码的作用是对train_dataset
进行随机打乱,即洗牌操作。
shuffle(buffer_size=20000)
:这个方法会随机打乱数据集中的元素顺序。 buffer_size
参数指定了用于洗牌操作的缓冲区大小。一个较大的缓冲区可以提供更好的随机性,但也会消耗更多的内存。这里设置的buffer_size
为20000,意味着TensorFlow会随机选择20000个元素进行洗牌,然后逐步输出这些元素,直到所有元素都被输出。
这两行代码一起,对训练数据集进行了必要的预处理和增强,使得模型能够更好地学习和泛化。
链接: https://pan.baidu.com/s/1KghXeFGu1xmzkWv0-T3yEA 提取码: 9z5p
要将代码上传到《趋动云》平台中才能使用,毕竟要利用它的数据集。
程序运行时的命令:python $GEMINI_RUN/DogsVsCats5.py --num_epochs 30 --data_dir $GEMINI_DATA_IN1/DogsVsCats --train_dir $GEMINI_DATA_OUT --batch_size 64 --learning_rate 0.0005
原文始发于微信公众号(MicroPest):对DogsVsCats例子的调优模型训练过程
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论