使用TensorFlow';具有多GPU训练的s数据集API
使用Tensorflow的新数据集API进行多GPU培训(来自使用TensorFlow';具有多GPU训练的s数据集API,tensorflow,gpu,tensorflow-gpu,Tensorflow,Gpu,Tensorflow Gpu,使用Tensorflow的新数据集API进行多GPU培训(来自TFRecords格式)似乎比在单个GPU上运行(1对4特斯拉K80)要慢得多(1/4) 从英伟达smi的输出来看,似乎使用4个gpu只会导致每个gpu的利用率约为15%,而使用单个gpu则约为45% 从磁盘加载数据(tfrecords格式)是否会导致培训速度出现瓶颈?使用常规的提要dicts,将整个数据集加载到内存中的速度远远快于使用数据集API的速度。您的网络似乎受到以下因素的限制: 从光盘上输入IO,如您上一段所述 如果您以读取
TFRecords
格式)似乎比在单个GPU上运行(1对4特斯拉K80)要慢得多(1/4)
从英伟达smi的输出来看,似乎使用4个gpu只会导致每个gpu的利用率约为15%,而使用单个gpu则约为45%
从磁盘加载数据(tfrecords格式)是否会导致培训速度出现瓶颈?使用常规的
提要dicts
,将整个数据集加载到内存中的速度远远快于使用数据集API的速度。您的网络似乎受到以下因素的限制:
tf.data.Dataset()\
.range(您的数据大小)\
.预取(20)\
.shuffle(缓冲区大小=20)\
.map(lambda i:your_loaded_list[i],num_parallel_calls=8)