开发者社区> 技术小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

tensorflow object detection API训练公开数据集Oxford-IIIT Pets Dataset

简介:
+关注继续查看

为了避免不必要的麻烦,先说一下我的系统版本

Python 3.6 tensorflow 1.10 windows 7

object detection API安装

object detection API 安装参见官方的github: https://github.com/tensorflow/models/tree/master/research/object_detection

这里需要特别强调一下,一定要检查一下,下面的python的包都安装了,方法很简单,全部执行一遍

7863eed1899b85c3c17c0c3b0389a415f2527211

coco API安装

windows下面不需要--user选项,Oxford-IIIT Pet 数据集使用coco metrix, 所以下面必须执行这个命令行:


  1. pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

在windows下面遇到utf-8编码错误

dcf3e1fa8fe9a5cca0bb513f52107c58899db86e

如下修正:

7f8d93268fdb75d7d6ff5efa85fc40f544f87073

C:\Program Files\Python\Python36\Lib\site-packages\pip\compat\_init_.py

79行改成gbk, utf-8替换为gbk, 不一定是是79行。再次执行即可成功安装

创建训练数据记录tfrecord

下载好Oxford-IIIT Pets Dataset数据集,解压缩到这里

b3277e2f8b8f6ad1e22b2fddd7bed5657d9422c4

然后执行下面的命令行:

43719b4752d98bb509719f568d96e691dd28466f

训练数据成功创建在指定目录:先切换到指定目录,完整的命令行执行


  1. D:\tensorflow\models\research>python objectdetection/datasettools/createpettfrecord.py --labelmappath=objectdetection/data/petlabelmap.pbtxt

  2. --datadir=D:/petdata --output-dir=D:\tensorflow\mytrain\data

  3. 还不会看这里:

  4. https://github.com/tensorflow/models/blob/master/research/objectdetection/g3doc/preparing_inputs.md

迁移学习

这步成功以后,就可以开始执行真正的训练啦,等等,别着急,我们是基于预训练模型的迁移学习,所以还有几件事情必须搞定,

下载预训练的tensorflow模型,我这里下载的是

126fd72ef04cb2670e2e4d89d7f0eef6a537cd62

http://download.tensorflow.org/models/objectdetection/ssdmobilenetv1coco201801_28.tar.gz

解压缩到指定目录,我的完整目录结构如下:

fd4dfd8ba3c30d455abe89638c340da5bbb8896b

其实有+加号的表示目录文件夹, - 表示文件

labelmap file来自 D:\tensorflow\models\research\objectdetection\data\petlabelmap.pbtxt pipeline config file来自 D:\tensorflow\models\research\objectdetection\samples\configs\ssdmobilenetv1pets.config

直接copy过来,然后打开

87bc968ff559a58c8efc1538d4e2890707ae2d44

开始修改,把所有【PATH_TO_BE_CONFIGURED】都改到正确路径上来:

ed8489a4ad38cfc3c5dc11a532eab29fa94ee5dc

保存好啦,然后直接执行训练的命令行:

d2d8054d111f2e2da7231426f91eacdeff21c3ca

各个参数选项解释如下:




--pipelineconfigpath

训练时候配置目录,所有关于训练各种输入路径、参数模型、参数网络配置,都在这个里面。

--modeldir

训练时候会写文件的目录,训练完成输出的模型保存目录

--numtrainsteps

训练多少个steps

--numeval_steps

多少个eval, 基本上两者要相差10倍以上 steps : eval

--alsologtostderr

表示日志信息

如果遇到这个错误

TypeError: can't pickle dictvalues objects

这样修改,打开model_lib.py

D:\tensorflow\models\research\objectdetection

813461ad57615496032b17390360b6ea5c461a41

继续训练就会很OK

启动tensorboard查看训练过程: CPU 太慢了,半天走一个step

4a8d26ce626d56c935f970b1018c0f606b452466


原文发布时间为:2018-08-27

本文作者:gloomyfish

本文来自云栖社区合作伙伴“OpenCV学堂”,了解相关信息可以关注“OpenCV学堂”。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
TensorFlow指定每个epoch训练多少个批次的数据
TensorFlow指定每个epoch训练多少个批次的数据
0 0
【Ubuntu】Tensorflow对训练后的模型做8位(uint8)量化转换
【Ubuntu】Tensorflow对训练后的模型做8位(uint8)量化转换
0 0
深度学习实战:tensorflow训练循环神经网络让AI创作出模仿莎士比亚风格的作品
深度学习实战:tensorflow训练循环神经网络让AI创作出模仿莎士比亚风格的作品
0 0
Whale 基于 Tensorflow 深度学习分布式训练框架|学习笔记
快速学习 Whale 基于 Tensorflow 深度学习分布式训练框架。
0 0
TensorFlow训练网络两种方式
TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器 两种方式区别是: 第一种是要加载全部数据形成一个tensor,然后调用model.fit()然后指定参数batch_size进行将所有数据进行分批训练 第二种是自己先将数据分批形成一个迭代器,然后遍历这个迭代器,分别训练每个批次的数据
0 0
DL之LSTM:基于tensorflow框架利用LSTM算法对气温数据集训练并回归预测
DL之LSTM:基于tensorflow框架利用LSTM算法对气温数据集训练并回归预测
0 0
CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别
CV之CNN:基于tensorflow框架采用CNN(改进的AlexNet,训练/评估/推理)卷积神经网络算法实现猫狗图像分类识别
0 0
DL之LSTM:基于tensorflow框架利用LSTM算法对气温数据集训练并回归预测
DL之LSTM:基于tensorflow框架利用LSTM算法对气温数据集训练并回归预测
0 0
TF之TFOD-API:基于tensorflow框架利用TFOD-API脚本文件将YoloV3训练好的.ckpt模型文件转换为推理时采用的.pb文件
TF之TFOD-API:基于tensorflow框架利用TFOD-API脚本文件将YoloV3训练好的.ckpt模型文件转换为推理时采用的.pb文件
0 0
TF之NN:基于Tensorflow利用神经网络算法对数据集(用一次函数随机生成100个数)训练预测斜率、截距(逼近已知一次函数)
TF之NN:基于Tensorflow利用神经网络算法对数据集(用一次函数随机生成100个数)训练预测斜率、截距(逼近已知一次函数)
0 0
+关注
技术小能手
云栖运营小编~
文章
问答
文章排行榜
最热
最新
相关电子书
更多
深度学习框架实战-Tensorflow
立即下载
深度学习+大数据 TensorFlow on Yarn
立即下载
使用TensorFlow搭建智能开发系统自劢生成App UI代码
立即下载