1

我正在尝试使用 mobilenetv3_small_seg 架构训练 deeplabv3 模型。我训练了模型,但我得到的预测是一个完整的空白掩码,没有类预测。我遵循的培训步骤是:

  1. 在 Google Colab 中克隆了官方存储库。

  2. 我准备了只有一个类的数据集(在脸上分割嘴唇)。我遵循 Pascal VOC12 数据集格式。我创建了 RGB 蒙版 (0, 255, 0),其周围有白色边界 (255, 255, 255) 和黑色背景 (0, 0, 0),如下所示。

    RGB蒙版 RGB蒙版

  3. 然后我在此脚本的帮助下将 RGB 蒙版转换为具有背景:0、前景:1 和边界:255 的单通道 png(8 位),如下所示:

    RGB蒙版 已移除颜色图

  4. 然后,我通过修改此脚本成功地将数据集转换为 tfrecord 。

  5. 然后我在 data_generator.py 中添加了我的数据集描述,其中 ignore_label=255 和 num_classes=2。

  6. 最后,我开始使用以下命令进行训练:

     !python train.py \
         --logtostderr \
         --training_number_of_steps=10000 \
         --train_split="val" \
         --model_variant="mobilenet_v3_small_seg" \
         --decoder_output_stride=16 \
         --train_crop_size="256,256" \
         --train_batch_size=16 \
         --dataset="pqr" \
         --save_interval_secs=600 \
         --save_summaries_secs=300 \
         --save_summaries_images=True \
         --log_steps=200 \
         --train_logdir=${PATH_TO_TRAIN_DIR} \
         --dataset_dir=${PATH_TO_DATASET}
    
  7. 训练完成后,我用几张不同的图像测试了模型。模型的输出是 (256, 256) 数组,所有值都等于 0。没有一个值我得到 1 或其他任何值。

我是机器学习的新手。我想知道

  1. 我的流程有什么问题?我看了很多教程,但我找不到答案。
  2. 我的数据集有什么问题吗?该数据集共包含 2000 张图像。
  3. 我找不到 mobilenetv3_small 的预训练权重。如果有人知道,请分享,以便我进行迁移学习。
  4. 我将类数设置为 2(背景和前景)。那正确吗?
4

0 回答 0