我使用tf.slim的train_image_classifier.py腳本在CIFAR10數據集微調ResNet50:多GPU訓練使用tf.slim需要更多的時間比單GPU
python train_image_classifier.py \
--train_dir=${TRAIN_DIR}/all \
--dataset_name=cifar10 \
--dataset_split_name=train \
--dataset_dir=${DATASET_DIR} \
--checkpoint_path=${TRAIN_DIR} \
--model_name=resnet_v1_50 \
--max_number_of_steps=3000 \
--batch_size=32 \
--num_clones=4 \
--learning_rate=0.0001 \
--save_interval_secs=10 \
--save_summaries_secs=10 \
--log_every_n_steps=10 \
--optimizer=sgd
對於3K的步驟,對運行中的這單GPU(特斯拉M40)需要約30mn,而在4個GPU上運行需要50million。 (兩種情況下的準確度都相似:〜75%和〜78%)。
我知道多GPU設置延遲的一個可能原因是加載圖像,但在tf.slim的情況下,它使用CPU。任何想法可能是什麼問題?謝謝!
時間線將有助於確定性能瓶頸。時間軸的使用:http://stackoverflow.com/questions/36123740/is-there-a-way-of-determining-how-much-gpu-memory-is-in-use-by-tensorflow/37931964#37931964 –
@YaoZhang我通過nvidia-smi跟蹤了GPU的使用情況,並且有大約90 +%使用了所有4個GPU,之後是0%的時刻,在整個培訓過程中慢慢地這樣。 – Anas
如果您在[Github](https://github.com/tensorflow/tensorflow/issues) – keveman