我已经在ADE20K数据集上训练了deeplab v3+,并获得了训练好的ckptjlog和eventslogs.But当我在ADE20K上运行eval.py和vis.py时,我得到了以下关于形状的错误:
Shape mismatch in tuple component 1. Expected [513,513,3], got [513,683,3]下面是我的eval脚本和vis脚本:
eval脚本:
#!/bin/bash
cd ../
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 \
--checkpoint_dir=deeplab/datasets/ADE20K/exp/train_on_train_set/train/ \
--eval_logdir=deeplab/datasets/ADE20K/exp/train_on_train_set/eval/ \
--dataset_dir=deeplab/datasets/ADE20K/tfrecord/ \
--max_number_of_iterations=1vis脚本:
#!/bin/bash
cd ../
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 \
--checkpoint_dir=deeplab/datasets/ADE20K/exp/train_on_train_set/train/ \
--vis_logdir=deeplab/datasets/ADE20K/exp/train_on_train_set/vis/ \
--dataset_dir=deeplab/datasets/ADE20K/tfrecord/ \
--max_number_of_iterations=1和我的train脚本:
#!/bin/bash
cd ../
python deeplab/train.py \
--logtostderr \
--training_number_of_steps=150000 \
--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=2 \
--min_resize_value=513 \
--max_resize_value=513 \
--resize_factor=16 \
--dataset="ade20k" \
--tf_initial_checkpoint=deeplab/datasets/ADE20K/init_models /deeplabv3_xception_ade20k_train/model.ckpt.index \
--train_logdir=deeplab/datasets/ADE20K/exp/train_on_train_set/train \
--dataset_dir=deeplab/datasets/ADE20K/tfrecord/有什么地方我放错了吗?谢谢你的帮助。
发布于 2019-10-14 16:42:21
确保sh-script中使用的参数与当前代码版本所需的参数匹配。
不久前,您必须为裁剪大小buy传递两个单独的值,当前的实现使用
--eval_crop_size="513,513" \或
--vis_crop_size="513,513" \(摘自here)
希望这能有所帮助;)。如果没有,请尝试在vis.py/eval.py脚本中打印裁剪值,并查看是否正确传递了。
https://stackoverflow.com/questions/53347661
复制相似问题