SSD Tensorflow訓練自己的資料集,遇到報錯absl.flags._exceptions.IllegalFlagValueError: flag --num_classes==: 求助
阿新 • • 發佈:2018-11-10
連結:https://blog.csdn.net/Echo_Harrington/article/details/81131441
下面是bash 的 train.sh 檔案博主給的內容
DATASET_DIR=./tfrecords TRAIN_DIR=./log/ CHECKPOINT_PATH=./checkpoints/ssd_300_vgg.ckpt/ssd_300_vgg.ckpt python train_ssd_network.py \ --train_dir=${TRAIN_DIR} \ --dataset_dir=${DATASET_DIR} \ --dataset_name=pascalvoc_2007 \ --dataset_split_name=train \ --model_name=ssd_300_vgg \ --checkpoint_path=${CHECKPOINT_PATH} \ --save_summaries_secs=60 \ --save_interval_secs=600 \ --weight_decay=0.0005 \ --optimizer=adam \ --learning_rate=0.001 \ --batch_size=6 \ --ignore_missing_vars = True \ --num_classes = 21 \ #修改為自己的類別數+1 --checkpoint_exclude_scopes =ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
下面是我的 train.sh 檔案
DATASET_DIR=/home/hp/zjc/Tensorflow/Deeplearning/dataset/VOCtrainval_06-Nov-2007/VOCdevkit/VOC2007_tfrecord TRAIN_DIR=/home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/log/ CHECKPOINT_PATH=/home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/checkpoints/ssd_300_vgg.ckpt/ssd_300_vgg.ckpt python /home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/train_ssd_network.py \ --train_dir=${TRAIN_DIR} \ --dataset_dir=${DATASET_DIR} \ --dataset_name=pascalvoc_2007 \ --dataset_split_name=train \ --model_name=ssd_300_vgg \ --checkpoint_path=${CHECKPOINT_PATH} \ --save_summaries_secs=60 \ --save_interval_secs=600 \ --weight_decay=0.0005 \ --optimizer=adam \ --learning_rate=0.001 \ --batch_size=6 \ --ignore_missing_vars = True \ --num_classes = 21 \ #修改為自己的類別數+1 --checkpoint_exclude_scopes =ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
下面是報錯結果
錯誤如下:
File "/home/hp/anaconda3/lib/python3.6/site-packages/absl/flags/_flag.py", line 169, in _parse
'flag --%s=%s: %s' % (self.name, argument, e))
absl.flags._exceptions.IllegalFlagValueError: flag --num_classes==: invalid literal for int() with base 10: '='
請問這個報錯什麼意思?
註釋掉類別數這一行之後可以執行,但是LOSS值不穩,正常嗎?
DATASET_DIR=/home/hp/zjc/Tensorflow/Deeplearning/dataset/VOCtrainval_06-Nov-2007/VOCdevkit/VOC2007_tfrecord
TRAIN_DIR=/home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/log/
CHECKPOINT_PATH=/home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/checkpoints/ssd_300_vgg.ckpt/ssd_300_vgg.ckpt
python /home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/train_ssd_network.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=pascalvoc_2007 \
--dataset_split_name=train \
--model_name=ssd_300_vgg \
--checkpoint_path=${CHECKPOINT_PATH} \
--save_summaries_secs=60 \
--save_interval_secs=600 \
--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--batch_size=6 \
--ignore_missing_vars = True \
#--num_classes == 21 \ #修改為自己的類別數+1
--checkpoint_exclude_scopes = ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
執行過程