Python 使用tf.slim进行多GPU训练比使用单个GPU花费更多时间
我正在使用tf.slim的脚本对CIFAR10数据集上的ResNet50进行微调: 对于3k步骤,在单个GPU(特斯拉M40)上运行此步骤大约需要30mn,而在4个GPU上运行则需要50+mn。(两种情况下的准确率相似:~75%和~78%) 我知道在多GPU设置中延迟的一个可能原因是加载图像,但在tf.slim的情况下,它使用CPU进行加载。你知道会是什么问题吗?谢谢大家!Python 使用tf.slim进行多GPU训练比使用单个GPU花费更多时间,python,tensorflow,gpu,multi-gpu,tf-slim,Python,Tensorflow,Gpu,Multi Gpu,Tf Slim,我正在使用tf.slim的脚本对CIFAR10数据集上的ResNet50进行微调: 对于3k步骤,在单个GPU(特斯拉M40)上运行此步骤大约需要30mn,而在4个GPU上运行则需要50+mn。(两种情况下的准确率相似:~75%和~78%) 我知道在多GPU设置中延迟的一个可能原因是加载图像,但在tf.slim的情况下,它使用CPU进行加载。你知道会是什么问题吗?谢谢大家! 如果将num_克隆设置为使用多gpu,则不会加快速度。因为slim将训练批处理大小*num\u克隆在每个GPU中分割的数据
时间线将有助于确定性能瓶颈。时间线的使用:@YaoZhang我通过nvidia smi跟踪GPU的使用情况,在90%左右的速度下,所有4个GPU都在使用,然后是0%的瞬间,在整个培训过程中都是这样。如果你提出一个问题,说明在这种情况下可以做些什么来加快培训,这是最好的回答?谢谢。@Anas先找到瓶颈。看看我贴的第二个链接。我现在正在学习使用时间线来分析。你也可以试试。
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