对DogsVsCats例子的调优模型训练过程

admin 2025年3月27日13:40:54评论4 views字数 2267阅读7分33秒阅读模式
这是一个以【狗猫识别】为例子的调优训练过程,要利用《趋动云》平台(virtaicloud.com)上算力开发环境。趋动云(VirtAI Cloud)是一个面向企业、科研和个人AI开发者的开发和训练平台,旨在提供高效、低成本的AI算法开发服务。
平台上手很简单,DogsVsCats例子过程文档在这里:https://platform.virtaicloud.com/gemini/v1/gemini_doc/01-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/02-dogCats.html,教程详细,一步步非常清晰,平台操作和案例步骤一一对照,对我们如何开展训练进行学习帮助很大,注册后平台赠送10元的计算费用,学习一两个例子够用,如果需要更多的调优就需要充值,切记:不用时一定要【停止】,否则以分钟收费的。
在开始下面的学习之前,要先到平台上熟悉下它的操作过程,毕竟下面的所有操作都是在平台上的。
一、例子的学习过程
1、将DogsVsCats.py的代码第46行修改下为以下,可以直接立马运行成功。
model.save(args.train_dir + "/model.keras")  
推荐使用.keras格式
2、代码解读。代码不长,deepseek分为三大块,
一是参数解析模块。
  • 使用argparse模块创建命令行参数解析器12
  • 定义了6个常用训练参数,包含默认值和类型声明
  • 参数解析结果存储在args对象中供后续使用
对DogsVsCats例子的调优模型训练过程

‌二是数据预处理函数。

  • 实现图像解码、尺寸调整和归一化标准化流程
  • 输出尺寸150x150的归一化图像张量
对DogsVsCats例子的调优模型训练过程

三是主程序逻辑。

(1). 数据准备

对DogsVsCats例子的调优模型训练过程

(2). 数据集构建

  • 使用tf.data API构建高效数据管道14
  • 启用并行处理和预取优化加速训练

对DogsVsCats例子的调优模型训练过程

(3). 模型构建

  • 使用Keras Sequential API构建卷积神经网络16
  • 包含4个卷积块+全连接层的经典结构
  • 使用Adam优化器和交叉熵损失函数
对DogsVsCats例子的调优模型训练过程

(4). 模型训练与保存

对DogsVsCats例子的调优模型训练过程

(5). 测试评估

对DogsVsCats例子的调优模型训练过程
3、关键特性说明。
  1. (1).数据管道优化
    :使用tf.data.Dataset的map、batch、prefetch等方法构建高效数据流水线
  2. (2).图像处理
    :通过tf.image模块实现标准化图像预处理
  3. (3).模型架构
    :采用经典卷积神经网络结构,包含:
    • 4个卷积+池化层堆叠
    • Dropout层防止过拟合
    • 最终softmax二分类输出
  4. (4).训练配置
    :使用Adam优化器和学习率调度
  5. (5).模型保存
    :采用Keras推荐的.keras格式保存完整模型
4、在运行训练过程中,第一次识别精准度达到50%,第二次去掉第46行的#注释后,识别度达到84.5%,精准度大幅提升,达到了目的。
deepseek对这两句代码的效果进行了重点解读,

这两行代码是对train_dataset进行进一步的数据预处理和增强

第一行代码

对DogsVsCats例子的调优模型训练过程

这行代码的作用是对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

第二行代码

对DogsVsCats例子的调优模型训练过程

这行代码的作用是对train_dataset进行随机打乱,即洗牌操作。

  • shuffle(buffer_size=20000)
    :这个方法会随机打乱数据集中的元素顺序。buffer_size参数指定了用于洗牌操作的缓冲区大小。一个较大的缓冲区可以提供更好的随机性,但也会消耗更多的内存。这里设置的buffer_size为20000,意味着TensorFlow会随机选择20000个元素进行洗牌,然后逐步输出这些元素,直到所有元素都被输出。

这两行代码一起,对训练数据集进行了必要的预处理和增强,使得模型能够更好地学习和泛化。

二、对例子的改进
1、下面是艰苦的训练,就是利用deepseek不停地反复测试,不停地试参数,来的看一些截图,
对DogsVsCats例子的调优模型训练过程
对DogsVsCats例子的调优模型训练过程
对DogsVsCats例子的调优模型训练过程
测试识别精准度一直在变化,不同的代码、参数导致分值有高有低。最后一稿时的分值超过了上面的84.5%,达到了93.84%,
对DogsVsCats例子的调优模型训练过程
放上我测试时记录下来的草稿纸,可以看出这个过程是相当麻烦的,好在有了deepseek的帮助,让这成为了可能。
对DogsVsCats例子的调优模型训练过程
2、给出最后一版的代码:DogsVsCats5.py,不具体展示了,放在网盘中。代码整合了数据增强、模型优化、动态学习率和验证策略。
下载地址:

链接: https://pan.baidu.com/s/1KghXeFGu1xmzkWv0-T3yEA 提取码: 9z5p 

要将代码上传到《趋动云》平台中才能使用,毕竟要利用它的数据集。

对DogsVsCats例子的调优模型训练过程
对DogsVsCats例子的调优模型训练过程

程序运行时的命令: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

对DogsVsCats例子的调优模型训练过程

原文始发于微信公众号(MicroPest):对DogsVsCats例子的调优模型训练过程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月27日13:40:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   对DogsVsCats例子的调优模型训练过程https://cn-sec.com/archives/3888648.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息