导语
Tensorflow在更新1.0版本之后多了很多新功能,其中放出了很多用tf框架写的深度网络结构(https://github.com/tensorflow/models ),大大降低了开发难度,利用现成的网络结构,无论fine-tuning还是重新训练方便了不少。最近笔者终于跑通TensorFlow Object Detection API的ssd_mobilenet_v1模型,这里记录下如何完整跑通数据准备到模型使用的整个过程,相信对自己和一些同学能有所帮助。
Object Detection API提供了5种网络结构的预训练的权重,全部是用COCO数据集进行训练,这五种模型分别是SSD+mobilenet、SSD+inception_v2、R-FCN+resnet101、faster RCNN+resnet101、faster RCNN+inception+resnet101。各个模型的精度和计算所需时间如下。下面及介绍下如何使用Object Detection去训练自己的模型。
Step1 安装所需库和文件
Tensorflow Object Detection API 依赖以下库:
Protobuf 3.12
Pillow 1.0
lxml
tf Slim (which is included in the "tensorflow/models/research/"checkout)
Jupyter notebook
Matplotlib
Tensorflow
1、首先在D盘根目录下新建一个名为 tensorflow_gpu 的文件夹:
2、接着进入 tensorflow models下载页,下载模型。如果GitHub下载慢,推荐使用码云,使用方法参考教程
!!注意这里有个巨坑
models的版本必须和tensorflow的版本号一样,否则会报错,models的版本号在下图的位置可见
将下载的 models.zip 解压到刚创建的 D:\tensorflow_gpu 目录下,并把文件夹的名字改为 models,如下图所示:
回到 Anaconda Prompt 命令窗口,开始配置环境。
激活 tensorflow_gpu 虚拟空间,接着安装如下依赖包:
conda install -c anaconda protobuf
中间出现提问是否安装某些库,输入 y 然后回车。
继续安装依赖库:
pip install pillow lxml Cython jupyter matplotlib pandas opencv-python