2 回答
TA贡献1797条经验 获得超6个赞
我曾经面临过这个问题。我从一个我再也找不到的人那里找到了解决方案。我将他的解决方案粘贴在下面。事实上,我发现如果你设置allow_growth=True,tensorflow 似乎会使用你所有的内存。所以你应该只设置你的最大限制。
尝试这个:
gpus = tf.config.experimental.list_physical_devices("GPU")
if gpus:
# Restrict TensorFlow to only use the first GPU
try:
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, False)
tf.config.experimental.set_virtual_device_configuration(
gpu,
[
tf.config.experimental.VirtualDeviceConfiguration(
memory_limit=12288 # set your limit
)
],
)
tf.config.experimental.set_visible_devices(gpus[0], "GPU")
logical_gpus = tf.config.experimental.list_logical_devices("GPU")
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPU")
except RuntimeError as e:
# Visible devices must be set before GPUs have been initialized
print(e)
TA贡献1816条经验 获得超4个赞
使用 SGD 进行训练以及一批中的整个训练数据可能(取决于您的输入数据)非常消耗内存。尝试将您的batch_size
尺寸调整为较小的尺寸(例如 8、16、32)
添加回答
举报