使用TensorFlow Slim微調模型出錯
阿新 • • 發佈:2019-01-02
在學習《21個專案玩轉深度學習》這本書時,第三章使用TensorFlow Slim微調模型遇上了一個問題。
執行:
python train_image_classifier.py \
--train_dir=satellite/train_dir \
--dataset_name=satellite \
--dataset_split_name=train \
--dataset_dir=satellite/data \
--model_name=inception_v3 \
--checkpoint_path=satellite/pretrained/inception_v3.ckpt \
--checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \
--trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \
--max_number_of_steps=100000 \
--batch_size=32 \
--learning_rate=0.001 \
--learning_rate_decay_type=fixed \
--save_interval_secs=300 \
--save_summaries_secs=2 \
--log_every_n_steps=10 \
--optimizer=rmsprop \
--weight_decay=0.00004
出現下面問題:
圖可能不清楚,說說這個的主要問題:
E:\Anaconda3\lib\site-packages\h5py__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from
float
tonp.floating
is deprecated. In future, it will be treated asnp.float64 == np.dtype(float).type
.
從上面錯誤的提示,可以看出這是問題是因為h5py這包有問題,到底是什麼問題呢?
其實,就是包的版本低了。使用下面pip升級:
pip install h5py==2.8.0rc1
升級之後,我們再次執行,結果又出錯了。這次是:
從圖中畫紅框的位置可以看到一個關鍵的詞“GPU”,這就是問題所在。如果沒有安裝GPU版的TensorFlow,那麼我們得加一個引數:–clone_on_cpu。將這引數設為True,這將使用cpu進行訓練。
python train_image_classifier.py \
--train_dir=satellite/train_dir \
--dataset_name=satellite \
--dataset_split_name=train \
--dataset_dir=satellite/data \
--model_name=inception_v3 \
--checkpoint_path=satellite/pretrained/inception_v3.ckpt \
--checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \
--trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \
--max_number_of_steps=100000 \
--batch_size=32 \
--learning_rate=0.001 \
--learning_rate_decay_type=fixed \
--save_interval_secs=300 \
--save_summaries_secs=2 \
--log_every_n_steps=10 \
--optimizer=rmsprop \
--weight_decay=0.00004 \
--clone_on_cpu=True
這樣執行就OK了!