报错(已解决):训练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写入了博主的贴出来的图遇到问题 \ 反斜杠标志变红色报错,不知道是什么问题。

截图如下:

报错(已解决):训练SSD网络时候出现DuplicateFlagError: The flag 'loss_alpha' is defined twice. 问题求助

 

 

 

第二: 我采取另外一种方法运行,直接在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.

报错(已解决):训练SSD网络时候出现DuplicateFlagError: The flag 'loss_alpha' is defined twice. 问题求助

 

解决办法:点击consoles然后restart kernel