报错(已解决):训练SSD网络时候出现DuplicateFlagError: The flag 'loss_alpha' is defined twice. 问题求助
https://blog.****.net/liuyan20062010/article/details/78905517#commentsedit
第一:
按照上述博客方法做训练博客中的方案3
方案3:从头开始训练自己的模型
# 注释掉CHECKPOINT_PATH,不提供初始化模型,让模型自己随机初始化权重,从头训练
# 删除checkpoint_exclude_scopes和trainable_scopes,因为是从头开始训练
# CHECKPOINT_PATH=./log_files/log_finetune/train_voc0712_20170712_1741_VGG16/model.ckpt-253287 python3 ../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} \
#所加载模型的路径,这里注释掉 #--checkpoint_model_scope=vgg_16 \
#所加载模型里面的作用域名 --save_summaries_secs=60 \
#每60s保存一下日志 --save_interval_secs=600 \
#每600s保存一下模型 --weight_decay=0.0005 \
#正则化的权值衰减的系数 --optimizer=adam \
#选取的最优化函数 --learning_rate=0.00001 \
#学习率 --learning_rate_decay_factor=0.94 \
#学习率的衰减因子 --batch_size=32
这个.sh脚本我认为缺少了连个路径
DATASET_DIR=/home/hp/zjc/Tensorflow/Deeplearning/dataset/VOCtrainval_06-Nov-2007/VOCdevkit/VOC2007_tfrecord/
TRAIN_DIR=/home/hp/zjc/Tensorflow/Deeplearning/models/tfmodels/MyModel/
加上路径之后我的.sh文件如下:
# 注释掉CHECKPOINT_PATH,不提供初始化模型,让模型自己随机初始化权重,从头训练
# 删除checkpoint_exclude_scopes和trainable_scopes,因为是从头开始训练
# CHECKPOINT_PATH=./log_files/log_finetune/train_voc0712_20170712_1741_VGG16/model.ckpt-253287
DATASET_DIR=/home/hp/zjc/Tensorflow/Deeplearning/dataset/VOCtrainval_06-Nov-2007/VOCdevkit/VOC2007_tfrecord/
TRAIN_DIR=/home/hp/zjc/Tensorflow/Deeplearning/models/tfmodels/MyModel/
python3 /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} \ #所加载模型的路径,这里注释掉
#--checkpoint_model_scope=vgg_16 \ #所加载模型里面的作用域名
--save_summaries_secs=60 \ #每60s保存一下日志
--save_interval_secs=600 \ #每600s保存一下模型
--weight_decay=0.0005 \ #正则化的权值衰减的系数
--optimizer=adam \ #选取的最优化函数
--learning_rate=0.00001 \ #学习率
--learning_rate_decay_factor=0.94 \ #学习率的衰减因子
--batch_size=32
但是问题是我的反斜杠 “\”是红色的,出现错误。
我在从头开始训练的方式中用脚本语言 .sh写入了博主的贴出来的图遇到问题 \ 反斜杠标志变红色报错,不知道是什么问题。
截图如下:
第二: 我采取另外一种方法运行,直接在train_ssd_network.py文件里面修改了dataset_dir路径和train_dir路径,直接运行.py文件替代了第一种方法,遇到另外的问题。问题如下:重复宣称,
DuplicateFlagError: The flag 'loss_alpha' is defined twice. First from /home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/train_ssd_network.py, Second from /home/hp/zjc/Tensorflow/Deeplearning/SSD-Tensorflow-master/train_ssd_network.py. Description from first occurrence: Alpha parameter in the loss function.
解决办法:点击consoles然后restart kernel