搜索
bottom↓
回复: 3

【人工智能 图像分割 原创首发】第四章 开始训练数据

[复制链接]

出25入84汤圆

发表于 2020-10-13 13:30:02 | 显示全部楼层 |阅读模式
到这里,前面的铺垫算是大体完成了,准备开始我们的数据训练吧!

三、训练自己的数据

3.1修改segmentation_dataset.py
/models-r1.13.0/research/deeplab/datasets中找到segmentation_dataset.py文件大概在111行的位置增加一个自己的数据集描述“_MYDATA”
然后在下面一个代码块注册数据集,下图光标处为上一步修改的数据集描述名称。


3.2修改Train_utils.py
在/models-r1.13.0/research/deeplab/utils中找到train_utils.py文件,修改109行,修改如下,作用是在使用预训练权重时候,不加载该logit层。

(这里需要考虑数据平衡问题,对于数据集本身,如果数据不平衡,即各类别a,b,background在数据集中占比不相同,比如background占比远大于a,b类别,则需要对权重进行分配,假设权重比为1:10:11,则在train_utils.py的大概70行修改权重。)这里我没有做。

3.3修改train.py
文件路径:/models-r1.13.0/research/deeplab/train.py 在125行左右,修改如下


3.4 下载预训练模型
https://github.com/tensorflow/mo ... /g3doc/model_zoo.md 中下载任意一个模型,在接下来的训练需要用。我下载的是这个

解压后放置在“models-r1.13.0/research/deeplab/g3doc/”下。

3.5训练指令
  1. python deeplab/train.py \
  2.     --logtostderr \
  3.     --num_clones=1 \
  4.     --training_number_of_steps=100 \
  5.     --train_split="train" \
  6.     --model_variant="xception_65" \
  7.     --atrous_rates=6 \
  8.     --atrous_rates=12 \
  9.     --atrous_rates=18 \
  10.     --output_stride=16 \
  11.     --decoder_output_stride=4 \
  12.     --train_crop_size=321 \
  13.     --train_crop_size=321 \
  14.     --train_batch_size=12 \
  15.     --dataset="mydata" \
  16.     --fine_tune_batch_norm=True \
  17.     --tf_initial_checkpoint='/Users/zhengyuchun/Desktop/Anaconda/models-r1.13.0/research/deeplab/g3doc/deeplabv3_mnv2_pascal_trainval/model.ckpt-30000.index' \
  18.     --train_logdir='/Users/zhengyuchun/Desktop/Anaconda/models-r1.13.0/research/deeplab/exp/mydata_train/train/' \
  19.     --dataset_dir='/Users/zhengyuchun/Desktop/Anaconda/semantic_segmentation/data_tfrecord/tfrecord/'
复制代码

#这里只需要把路径改为自己的路径就可以。
其中:
num_clones:用2个gpu进行训练所以设置成2,默认为1。
train_crop_size:裁剪完成的图片大小。对于参数的说明:
① 不得小于 [321, 321]
② (crop_size - 1)/4 = 整数
③ 将crop_size设置为[256, 256],结果不会好,因为其有ASPP(atrous spatial pyramid pooling)模块,如果图片过小,到feature map时没有扩张卷积的范围大了,所以要求一个最小值
rain_batch_size:batch尺寸,如要训练BN层,batch_size值最好大于12,如果显存不够,可调整crop_size大小,但不得小于[321, 321]。
fine_tune_batch_norm:当batch_size大于12时,设置为True。
tf_initial_checkpoint:修改成自己的预训练权重路径,我使用的是xception_65
train_logdir:训练产生的文件存放路径。

3.6可视化输出
在终端输入指令
  1. python deeplab/vis.py \
  2.     --logtostderr \
  3.     --vis_split="val" \
  4.     --model_variant="xception_65" \
  5.     --atrous_rates=6 \
  6.     --atrous_rates=12 \
  7.     --atrous_rates=18 \
  8.     --output_stride=16 \
  9.     --decoder_output_stride=4 \
  10.     --vis_crop_size=512 \
  11.     --vis_crop_size=512 \
  12.     --dataset="mydata" \
  13.     --checkpoint_dir='/Users/zhengyuchun/Desktop/Anaconda/models-r1.13.0/research/deeplab/exp/mydata_train/train/' \
  14.     --vis_logdir='/Users/zhengyuchun/Desktop/Anaconda/models-r1.13.0/research/deeplab/exp/mydata_train/vis/' \
  15.     --dataset_dir='/Users/zhengyuchun/Desktop/Anaconda/semantic_segmentation/data_tfrecord/tfrecord/'
复制代码

其中:vis_split:设置为测试集val。
vis_crop_size:设置成数据集里面val数据的大小,比如我的是512*512。
dataset:设置为我们在segmentation_dataset.py文件设置的数据集名称。
dataset_dir:设置为创建的tfrecord路径。

3.7 tensorboard查看训练结果
由于训练结果存储在“/models-r1.13.0/research/deeplab/exp/mydata_train/train/”下
所以cd到research目录,执行命令,然后在浏览器输入cmd里的地址就可以查看训练结果了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出20入25汤圆

发表于 2020-10-13 13:37:45 来自手机 | 显示全部楼层
能不能来个安卓版本的

出0入0汤圆

发表于 2020-10-13 13:37:57 | 显示全部楼层
哇,大佬,膜拜
谢谢分享

出25入84汤圆

 楼主| 发表于 2020-10-13 13:39:28 | 显示全部楼层
chenchaoting 发表于 2020-10-13 13:37
能不能来个安卓版本的

安卓应该更简单,自己网上搜索下就可以转换过去了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 16:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表