我使用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