首页 > 解决方案 > TensorFlow/Keras 性能更好,GPU 内存更少?

问题描述

减少 GPU 内存分配会提高我的 CNN 模型的训练速度。我期望相反 - 速度应该随着分配的内存而降低。我怀疑这与将数据传入和传出 GPU 所需的时间有关。

我运行了分配 a) 所有 GPU 内存和 b) 大约一半 (46%) 的 GPU 内存的案例。使用所有 GPU 内存(无限制)训练速度为 153 epochs/hour。当分配 46% 的 GPU 内存时,训练速度为 199 epochs/hour。

我通过以下方式设置 GPU 内存:

gpu_memory_fraction = 0.46 # Values tested: 0.46 and 1    
config = tf.compat.v1.ConfigProto()
if gpu_memory_fraction < 1.0:
    config.gpu_options.per_process_gpu_memory_fraction = gpu_memory_fraction
    K.tensorflow_backend.set_session(tf.Session(config=config))

我使用 kerasmodel.fit()方法进行训练。批量大小 = 64。

环境:

任何人都可以提供解释吗?

标签: performancetensorflowkerasgpu

解决方案


推荐阅读