【代码】deeplabv3+ model train 模型 训练 代码 全网最详细解析

目前你已经看完了,会改数据输入部分的代码了。

那么模型代码还需要看。

目录

train.py包含了方法:

调用关系:

model.py包含的方法:

model.py被调用,()表示跨py文件调用

数据的传递:

首先在train.py中:

于是我们看下主角 model.py

multi_scale_logit:

_get_logit调用了三个方法

refine_by_decoder

get_branch_logits

train_utils


train.py包含了方法:

_build_deeplab
_tower_loss
_average_gradients
_log_summaries
_train_deeplab_model
main

调用关系:

train.py :main->_train_deeplab_model->tower_loss->_build_deeplab

train.py:_train_deeplab_model->_average_gradient

train.py:_build_deeplab->_log_summaries

model.py包含的方法:

get_extra_layer_scopes
predict_labels_multi_scale
predict_labels
multi_scale_logits
extract_features
_get_logits
refine_by_decoder
get_branch_logits

model.py被调用,()表示跨py文件调用

1.(train.py _build_deeplab)->(model.py multi_scale_logits):

model.py: multi_scale_logit->_get_logits->extract_features+refine_by_decoder+get_branch_logit

 

2.(train.py _train_deeplab_model)->(model.py get_extra_layer_scopes)

 

3.(train.py main)->(model.py get_extra_layer_scopes)

 

数据的传递:

首先在train.py中:

main函数生成了dataset实例:

      dataset = data_generator.Dataset(
          dataset_name=FLAGS.dataset,
          split_name=FLAGS.train_split,
          dataset_dir=FLAGS.dataset_dir,
          batch_size=clone_batch_size,
          crop_size=[int(sz) for sz in FLAGS.train_crop_size],
          min_resize_value=FLAGS.min_resize_value,
          max_resize_value=FLAGS.max_resize_value,
          resize_factor=FLAGS.resize_factor,
          min_scale_factor=FLAGS.min_scale_factor,
          max_scale_factor=FLAGS.max_scale_factor,
          scale_factor_step_size=FLAGS.scale_facto
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DeepLabv3+是一种语义分割模型,可以用于对图像进行像素级别的分类。在训练DeepLabv3+模型时,需要准备适当的数据集。在这里,我们将介绍如何使用CamVid数据集训练DeepLabv3+模型。 CamVid是一个用于语义分割的数据集,包含数百个标注图像和相应的标注。CamVid数据集可以从以下网址下载: http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/ 在下载并解压缩数据集后,可以使用以下步骤来训练DeepLabv3+模型: 1. 准备数据集 首先,需要将CamVid数据集划分为训练集、验证集和测试集。可以使用以下命令来创建这些文件列表: ``` $ cd /path/to/CamVid $ mkdir lists $ find ./train -name "*.png" | sed 's/\.png$/\.jpg/g' > lists/train.txt $ find ./val -name "*.png" | sed 's/\.png$/\.jpg/g' > lists/val.txt $ find ./test -name "*.png" | sed 's/\.png$/\.jpg/g' > lists/test.txt ``` 然后,需要创建一个标签文件,该文件将每个类别映射到一个数字。可以使用以下命令来创建标签文件: ``` $ cd /path/to/CamVid $ mkdir labels $ echo "0 0 0 0" > labels/void.txt $ echo "128 0 0 1" > labels/sky.txt $ echo "128 128 128 2" > labels/building.txt $ echo "128 64 128 3" > labels/wall.txt $ echo "0 0 192 4" > labels/fence.txt $ echo "128 128 0 5" > labels/pole.txt $ echo "192 192 128 6" > labels/traffic_light.txt $ echo "64 64 128 7" > labels/traffic_sign.txt $ echo "64 0 128 8" > labels/vegetation.txt $ echo "192 128 128 9" > labels/terrain.txt $ echo "64 64 0 10" > labels/ground.txt $ echo "0 128 192 11" > labels/road.txt $ echo "192 192 0 12" > labels/sidewalk.txt $ echo "0 0 0 13" > labels/pedestrian.txt $ echo "64 192 0 14" > labels/rider.txt $ echo "192 128 0 15" > labels/car.txt $ echo "64 64 128 16" > labels/truck.txt $ echo "128 64 64 17" > labels/bus.txt $ echo "64 0 192 18" > labels/train.txt $ echo "192 0 64 19" > labels/motorcycle.txt $ echo "128 128 64 20" > labels/bicycle.txt ``` 在这个标签文件中,每一行代表一个类别,前三个数字分别表示RGB颜色值,最后一个数字表示类别标识符。 2. 安装依赖项 接下来,需要安装DeepLabv3+的依赖项。可以使用以下命令来安装这些依赖项: ``` $ pip install tensorflow-gpu==2.0.0 pillow matplotlib ``` 3. 创建模型 然后,需要创建DeepLabv3+模型。可以使用以下命令来创建模型: ``` $ python deeplab.py --backbone resnet --output-stride 16 ``` 在这个命令中,`--backbone`参数指定使用的ResNet模型的版本,`--output-stride`参数指定输出步长。 4. 训练模型 接下来,可以使用CamVid数据集来训练DeepLabv3+模型。可以使用以下命令来启动训练: ``` $ python train.py \ --model_dir /path/to/model \ --backbone resnet \ --output_stride 16 \ --train_list /path/to/CamVid/lists/train.txt \ --val_list /path/to/CamVid/lists/val.txt \ --label_dir /path/to/CamVid/labels \ --batch_size 8 \ --learning_rate 0.007 \ --num_epochs 30 \ --augmentations 'flip,hue_saturation,resize' ``` 在这个命令中,`--model_dir`参数指定要保存训练模型的目录,`--train_list`参数指定训练数据集的文件列表,`--val_list`参数指定验证数据集的文件列表,`--label_dir`参数指定标签文件所在的目录,`--batch_size`参数指定训练批次大小,`--learning_rate`参数指定学习率,`--num_epochs`参数指定训练轮数,`--augmentations`参数指定数据增强方式。 5. 测试模型 最后,可以使用测试集来测试训练好的DeepLabv3+模型。可以使用以下命令来启动测试: ``` $ python test.py \ --model_dir /path/to/model \ --backbone resnet \ --output_stride 16 \ --test_list /path/to/CamVid/lists/test.txt \ --label_dir /path/to/CamVid/labels \ --result_dir /path/to/result ``` 在这个命令中,`--test_list`参数指定测试数据集的文件列表,`--result_dir`参数指定测试结果的保存目录。 通过以上步骤,就可以在CamVid数据集上训练和测试DeepLabv3+模型了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值