我正在使用带有NVIDIA Tesla K20c GPU的计算机上的TensorFlow后端keras。(CUDA 8)
我正在训练一个相对简单的卷积神经网络,在训练期间,我运行终端程序nvidia-smi
以检查GPU使用情况。如下图所示,GPU利用率通常显示在7%-13%左右。
我的问题是:在CNN训练期间,GPU使用率不应该更高吗? 这是错误的GPU配置或keras / tensorflow使用的迹象吗?
我正在使用带有NVIDIA Tesla K20c GPU的计算机上的TensorFlow后端keras。(CUDA 8)
我正在训练一个相对简单的卷积神经网络,在训练期间,我运行终端程序nvidia-smi
以检查GPU使用情况。如下图所示,GPU利用率通常显示在7%-13%左右。
我的问题是:在CNN训练期间,GPU使用率不应该更高吗? 这是错误的GPU配置或keras / tensorflow使用的迹象吗?
可能由于多种原因,但最有可能的是您在读取训练数据时遇到了瓶颈。当GPU处理完一个批次后会需要更多的数据。根据您的实现方式,这可能会导致GPU等待CPU加载更多数据,从而降低GPU使用率并延长训练时间。
如果内存足够,请尝试将所有数据加载到内存中,或使用QueueRunner,该工具可以在后台读取数据以建立输入管道。这会减少GPU等待更多数据的时间。
TensorFlow网站上的阅读数据指南包含更多信息。