3、一键训练模型
1、前言
在上一篇文章中(2、下载预训练模型并进行迁移学习 https://blog.csdn.net/lemon4869/article/details/107050702),我们发现整个训练过程十分繁琐,包含很多耗时又很简单、机械的操作,所以,可否把这些机械化的操作交给程序呢?当然是可以的。我们用两个脚本文件 create_directories.py 和 one_command_train.py 来实现前面一节的内容。其中:
- create_directories.py:用来创建项目文件夹
- one_command_train.py:转换标记文件,训练模型 ssd_inception_v2_coco
1.1 本文章约定
- 操作 :表示你需要跟着说明进行相应的操作。
- 输入命令
xxxxxx
:表示你需要在控制台键入命令。
1.2 开始条件
本文章所需文件下载地址:
链接:https://pan.baidu.com/s/18UP1HfdgX27hmyFB25a5FQ
提取码:1eci
1.3 视频教程
https://www.bilibili.com/video/BV13T4y1E7Tk/
1.4 整个流程概览
1、create_directories.py 一键创建项目目录结构
操作 将下载的 create_directories.py 复制到 tf_train\workspaces 目录下,然后打开处于 tf_gpu 环境的控制台,切换到该目录。
输入命令 python create_directories.py --name=my_training_demo
,就会创建相应的目录结构。
修改 train.py,在 main 函数最前面添加:
# GPU 按需分配
config = tf.compat.v1.ConfigProto(allow_soft_placement=True)
config.gpu_options.per_process_gpu_memory_fraction = 0.3
tf.compat.v1.keras.backend.set_session(tf.compat.v1.Session(config=config))
2、准备好相应的数据及与训练模型
使用我们前一章准备的数据和下载的模型。
3、one_command_train.py 一键训练模型
该 one_command_train.py 脚本文件是对 ssd_inception_v2_coco 模型进行训练。
操作 进入 workspaces\my_training_demo\training 目录。
输入命令 python one_command_train.py --steps=100 --batch_size=12
整个文件的执行逻辑:
- 检查文件夹是否存在
- 检查 train 目录、eval 目录里是否有图片及标注文件
- 检查预训练模型 ssd_inception_v2_coco 是否存在,若不存在则下载模型
- 提取标签映射文件 label_map.pbtxt 里的信息
- 创建 tfrecord 文件
- 从命令行读取训练步数(steps)和批样本个数(batch_size)
- 修改 ssd_inception_v2_coco.config 文件
- 启动训练
训练完成的截图:
导出模型、用模型做目标检测请看前一章:2、训练模型 https://blog.csdn.net/lemon4869/article/details/107050702