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学堂”。

相关文章
|
3月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
63 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
4月前
|
TensorFlow 算法框架/工具
tensorflow/train训练指令
tensorflow/train训练指令
38 0
|
6月前
|
机器学习/深度学习 监控 算法
【tensorflow】连续输入的神经网络模型训练代码
【tensorflow】连续输入的神经网络模型训练代码
|
6月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【tensorflow】连续输入的线性回归模型训练代码
  get_data函数用于生成随机的训练和验证数据集。首先使用np.random.rand生成一个形状为(10000, 10)的随机数据集,来模拟10维的连续输入,然后使用StandardScaler对数据进行标准化。再生成一个(10000,1)的target,表示最终拟合的目标分数。最后使用train_test_split函数将数据集划分为训练集和验证集。
|
6月前
|
机器学习/深度学习 移动开发 算法
动物识别系统python+Django网页界面+TensorFlow算法模型+数据集训练
动物识别系统python+Django网页界面+TensorFlow算法模型+数据集训练
92 0
动物识别系统python+Django网页界面+TensorFlow算法模型+数据集训练
|
6天前
|
机器学习/深度学习 运维 监控
TensorFlow分布式训练:加速深度学习模型训练
【4月更文挑战第17天】TensorFlow分布式训练加速深度学习模型训练,通过数据并行和模型并行利用多机器资源,减少训练时间。优化策略包括配置计算资源、优化数据划分和减少通信开销。实际应用需关注调试监控、系统稳定性和容错性,以应对分布式训练挑战。
|
6天前
|
机器学习/深度学习 API TensorFlow
TensorFlow的高级API:tf.keras深度解析
【4月更文挑战第17天】本文深入解析了TensorFlow的高级API `tf.keras`,包括顺序模型和函数式API的模型构建,以及模型编译、训练、评估和预测的步骤。`tf.keras`结合了Keras的易用性和TensorFlow的性能,支持回调函数、模型保存与加载等高级特性,助力提升深度学习开发效率。
|
6天前
|
机器学习/深度学习 TensorFlow 调度
优化TensorFlow模型:超参数调整与训练技巧
【4月更文挑战第17天】本文探讨了如何优化TensorFlow模型的性能,重点介绍了超参数调整和训练技巧。超参数如学习率、批量大小和层数对模型性能至关重要。文章提到了三种超参数调整策略:网格搜索、随机搜索和贝叶斯优化。此外,还分享了训练技巧,包括学习率调度、早停、数据增强和正则化,这些都有助于防止过拟合并提高模型泛化能力。结合这些方法,可构建更高效、健壮的深度学习模型。
|
6月前
|
Java TensorFlow 算法框架/工具
【tensorflow】TF1.x保存.pb模型 解决模型越训练越大问题
在上一篇博客【tensorflow】TF1.x保存与读取.pb模型写法介绍介绍的保存.pb模型方法中,保存的是模型训练过程中所有的参数,而且训练越久,最终保存的模型就越大。我的模型只有几千参数,可是最终保存的文件有1GB。。。。
|
6月前
|
机器学习/深度学习 存储 自然语言处理