前面part1~part2已经把环境安装、模型训练这一套流程介绍了一次。该教程介绍如何更换一个模型去训练数据。
教程结构:
本教程分为三个步骤:
1.寻找模型配置文件以及其预训练模型
2.修改模型配置文件内容
3.测试
4.后记:假如需要使用tensorflow2.0的模型(环境安装的一些注意事项!!!!)
1.寻找模型配置文件以及其预训练模型 Ⅰ.寻找模型配置文件
相关模型配置文件可以在models-r1.13.0.zip的“…/research/object_detecion/samples/configs”里面找到。
models-r1.13.0.zip 可以在我github上Clone下来,链接:
https://github.com/HelloSZS/models-r1.13.0
因为使用tensorflow框架及tensorflow object detection API进行模型训练,因此在Tensorflow的github网站上可以寻找预训练模型。
使用预训练模型可以加快模型训练收敛速度,其实也可以选择不使用预训练模型。
Tensorflow object detection API的github网址:
https://github.com/tensorflow/models/tree/r1.13.0/research/object_detection
因为使用tensorflow1.0,因此选择了Tensorflow object detection API(r1.13.0版本)
以下是上面网址打开后的页面展示:
本系列教程提供的“models-r1.13.0.zip”压缩包,便是r1.13.0版本的压缩包。
网页下拉到该位置,点击tensorflow detection model zoo。
然后会跳转到下一个页面:这里就有预训练模型,按需下载。
预训练模型压缩包里包含了checkpoint文件和pb文件,还有配置文件,如下图:
2.修改模型配置文件内容 为何要修改配置文件内容?
首先,训练自己的数据集,需要给模型配置文件提供数据集放置的位置。其次,如果有想法,可以在基础的配置文件上修改优化器或者模型结构。再来,如果显存或内存不足,可以在里面修改batch_size。
如果需要使用不同的模型,则选用相应的配置文件,建议复制一份到其他文件夹,更改配置名称,以便与原版配置文件作区分:
示例:假如我要使用rfcn_resnet101 这个模型,建议复制一份:
并打开该配置文件,然后对以下内容进行修改:
如何修改,可以参考之前步骤中示例的模型配置文件:
修改后如下图:
至此,修改完成。
3.测试
测试的命令与“step1-Anaconda & Tensorflow安装教程”中下图位置的步骤一样,不过要修改命令:
原本:
python model_main.py --logtostderr --train_dir=training/ --pipeline_config_path=images/object/ssd_mobilenet_v2_coco.config
其中:ssd_mobilenet_v2_coco.config,修改成:rfcn_resnet101_coco.config
即变成:
python model_main.py --logtostderr --train_dir=training/ --pipeline_config_path=images/object/rfcn_resnet101_coco.config
如果出现:Windows fatal exception: access violation
则检查配置文件的路径有没有错误:常见的是相对路径出错
不过这里是因为没有配置预训练模型的路径所以导致出错
可以选择注释掉不用预训练模型并且from_detection_checkpoint设置为false,如下图:
或者把存放预训练模型的位置放进去。
重新输入训练命令进行训练,出现loss,step,则表示成功修改了配置文件,并已经开始进行训练。
自此,Tensorflow Object detection API Win10使用教程全部结束。
4.后记:假如需要使用tensorflow2.0的模型
如果后续需要选择其他版本的Tensorflow object detection API(例如r2.0版本),则需要注意去创建新的anaconda环境再安装tensorflow2.0版本,以及相应的tensorboard/tensorflow-estimator版本。
tensorflow2.0版本安装过程与1.0一样,只需要在“step1教程”的相应步骤更改部分命令参数(例如: conda install tensorflow==1.15.1改成 conda install tensorflow==2.0.0)。并且网上查找tensorflow与cuda/cudnn版本兼容的列表(可以上tensorflow官网查找),看是否需要修改cuda/cudnn版本。
还要注意的一点,本系列教程提供的“models-r1.13.0.zip”压缩包已经对.proto文件进行过编译,生成了.py文件(省略了编译的过程,方便初学)。文件如下图所示:
如果需要下载其他版本,在如下图红框安装步骤之前重新编译.proto,下文会介绍编译方法。
编译.Proto的步骤介绍:
打开protobuf的github网站下载相应的文件,链接如下:
https://github.com/protocolbuffers/protobuf/releases
如果你是windows系统,则下载下列文件
(32位系统下载win32,64位系统下载win64)
打开已经下载好的压缩包,把bin文件夹里的protoc.exe放到C:Windows文件夹里:
然后重新打开一个cmd,输入protoc,回车,如果如下图所示,即准备就绪。
cmd中,激活环境,切换到“…/research”作为当前工作目录,然后输入以下命令:
protoc object_detection/protos/*.proto --python_out=.
然后如下图所示:
如果回车后没有任何错误提示,如下图所示:
并且会在“…/research/object_detection/proto中”生成下图内容(.py文件):
则表示已经成功,可以继续进行下续install步骤(对tensorflow object detection API进行安装)。