【问题标题】:Training my own dataset on deeplab but inference all black在 deeplab 上训练我自己的数据集,但推理全黑
【发布时间】:2020-08-30 13:46:53
【问题描述】:

我尝试在 TensorFlow 模型园中的 deeplab 模型上训练我自己的数据集,随着时间的推移,我可以得到一个减少的损失结果,我使用官方 repo 提供的预训练模型。

但是当我尝试查看最新的检查点或尝试将模型冻结为 .pb 并进行推理时,除了黑色图像之外什么都没有(我用 NumPy 检查这些图像,所有像素都是 0)。

我的训练脚本是这样的:

python deeplab/train.py \
--logtostderr \
--num_clones=1 \
--training_number_of_steps=500000 \
--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,513" \
--train_batch_size=2 \
--dataset={$OWN_DATASET} \
--train_logdir={$TRAIN_LOGDIR} \
--dataset_dir={$DATASET_DIR}  \
--tf_initial_checkpoint={$INITIAL_CHECKPOINT}

以前有没有人发生过?

【问题讨论】:

    标签: tensorflow deeplab


    【解决方案1】:

    这是一个旧线程,我不知道您是否仍需要帮助,但您尚未提供有关数据集的太多信息。以下是一些通用的提示:

    1. 尝试在 train.py 中设置这些标志

      --fine_tune_batch_norm=False \
      --initialize_last_layer=False \
      --last_layers_contain_logits_only=True \
      
    2. 确保您的 SegmentationClassRaw 文件夹标签掩码为 0、1、2、3...,其中 0 是背景,1、2、3...是各个类。运行“asarray(image)”查看这些像素并确保标签正确。

    3. 如果你有一个不平衡的数据集,你可以尝试在通过 train.py 中设置不同标签的权重。

      --label_weights=1 \  # Weight for label 0 (Background)
      --label_weights=10 \  #Weight for label 1 (Object class 1)
      --label_weights=15 \  #Weight for label 2 (Object class 2)
      
    4. 如果全部失败,请尝试更大的数据集。 225 张图像和 2000 步(带有初始 mobilenetv2 检查点)的数据集大小为我产生了结果,尽管由于数据集大小很小,因此准确性/性能不是很好。作为一个参考点,这个小数据集在 2000 步之后的损失大约是 0.05-0.06。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 2016-03-29
      • 2019-07-02
      • 2020-02-23
      • 2019-08-11
      • 2017-12-11
      相关资源
      最近更新 更多