免责声明:第一次尝试机器学习!
我们需要根据背景自动分割图像中的对象。通过互联网,我们发现“深度实验室”将解决我们的目的。我们从他们的官方网站下载了deeplab,并按照他们提到的所有说明进行操作。我们使用以下命令训练了pascal_voc_2012数据集


  python deeplab / train.py \
      --logtostderr \
      --training_number_of_steps = 30000 \
      --train_split =“火车” \
      --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 = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / checkpoint
  \
      --train_logdir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / train $
  \
      --dataset_dir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / tfrecord


50小时后进行培训。然后我使用以下命令开始评估


  python deeplab / eval.py \
      --logtostderr \
      --eval_split =“ val” \
      --model_variant =“ xception_65” \
      --atrous_rates = 6 \
      --atrous_rates = 12 \
      --atrous_rates = 18 \
      --output_stride = 16 \
      --decoder_output_stride = 4 \
      --eval_crop_size = 513 \
      --eval_crop_size = 513 \
      --dataset =“ pascal_voc_seg” \
      --checkpoint_dir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / train /
  \
      --eval_logdir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / eval /
  \
      --dataset_dir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / tfrecord


执行上述命令后,它正确地找到了一个检查点,但此后它仍保留在此消息中


  “正在等待检查站
  主页/ ktpl13 /桌面/ models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / train /“


所以我在2小时后终止了Eval的执行,并使用以下命令启动了可视化


  python deeplab / vis.py \
      --logtostderr \
      --vis_split =“ val” \
      --model_variant =“ xception_65” \
      --atrous_rates = 6 \
      --atrous_rates = 12 \
      --atrous_rates = 18 \
      --output_stride = 16 \
      --decoder_output_stride = 4 \
      --vis_crop_size = 513 \
      --vis_crop_size = 513 \
      --dataset =“ pascal_voc_seg” \
      --checkpoint_dir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / train /
  \
      --vis_logdir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / vis /
  \
      --dataset_dir = / home / ktpl13 / Desktop / models-master / research / deeplab / datasets / pascal_voc_seg / tfrecord /


可视化也针对一个检查点执行,然后再次收到与Eval相同的消息。


  “正在等待检查站
  主页/ ktpl13 /桌面/ models-master / research / deeplab / datasets / pascal_voc_seg / exp / train_on_train_set / train /“


我再次终止了vis的执行。有一个在vis下生成的名为“ segmentation_results”的文件夹,其中包含每个输入图像的“ prediction.png”。这是“完全黑色的图像”。

现在我的问题是。


我的评估和可视化完成了吗?还是我做错了什么?
为什么预测的图像全都是黑色?

最佳答案

关于等待另一个检查点的评估,是因为默认值希望与训练过程一起运行。要只运行一次eval脚本,请在训练后将此标志添加到eval.sh脚本中:

--max_number_of_evaluations = 1

您可以使用TensorBoard查看该值。

vis.sh脚本似乎正在正确运行,因为它会将图像保存到目录中。所有黑色图像的问题是一个不同的问题(例如:数据集配置,标签权重,色图去除等)。

08-24 14:20