1. 程式人生 > >報錯(已解決):訓練SSD網路時候出現DuplicateFlagError: The flag 'loss_alpha' is defined twice. 問題求助

報錯(已解決):訓練SSD網路時候出現DuplicateFlagError: The flag 'loss_alpha' is defined twice. 問題求助

https://blog.csdn.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