報錯(已解決):訓練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