1. 程式人生 > >使用TensorFlow Slim微調模型出錯

使用TensorFlow Slim微調模型出錯

在學習《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 to np.floating is deprecated. In future, it will be treated as np.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了!

這裡寫圖片描述