我想使用我自己的数据集自定义 deeplab 进行图像分割?这可以通过再培训来实现吗?
问问题
5934 次
2 回答
10
在Deeplab 官方教程页面上,训练命令如下所示:
python deeplab/train.py \
--logtostderr \
--training_number_of_steps=30000 \
--train_split="train" \
--model_variant="xception_65" \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--decoder_output_stride=4 \
--train_crop_size=513 \
--train_crop_size=513 \
--train_batch_size=1 \
--dataset="pascal_voc_seg" \
--tf_initial_checkpoint=${PATH_TO_INITIAL_CHECKPOINT} \
--train_logdir=${PATH_TO_TRAIN_DIR} \
--dataset_dir=${PATH_TO_DATASET}
通过更改dataset_dir
和dataset
中的几行segmentation_dataset.py
,您可以在自己的数据集上进行训练。
dataset_dir
: 路径指向您的tfrecord 文件夹。在此文件夹中,您应该拥有
train-%05d-of-%05d.tfrecord
并由build_voc2012_data.py或datasets中的其他脚本val-%05d-of-%05d.tfrecord
创建。因此,如果您想
train.tfrecord
用于训练,请设置train_split
为train
; 如果您想对您的评估数据进行评估,请设置train_split
为val
。dataset
:任何自定义名称,例如“donkey_monkey”-
DatasetDescriptor
为您自己的数据集创建:_DONKEY_MONKEY_INFORMATION = DatasetDescriptor( splits_to_sizes={ 'train': 1464, # number of training examples in train data 'trainval': 2913, # number of examples for train+eval 'val': 1449, # number of eval examples }, num_classes=21, # note: should be number of class + background ignore_label=255, # label pixels to ignore )
更改以下代码(第 112 行)
_DATASETS_INFORMATION = { 'cityscapes': _CITYSCAPES_INFORMATION, 'pascal_voc_seg': _PASCAL_VOC_SEG_INFORMATION, 'ade20k': _ADE20K_INFORMATION, 'donkey_monkey': _DONKEY_MONKEY_INFORMATION, # newly added }
于 2019-01-26T00:48:31.153 回答