私信  •  关注

d_kennetz

d_kennetz 最近创建的主题
d_kennetz 最近回复了
6 年前
回复了 d_kennetz 创建的主题 » CUDA错误:内存不足-Python解释器使用所有GPU内存

默认情况下,Tf为进程的生存期分配GPU内存,而不是为会话对象的生存期分配内存(因此内存可以比对象长得多)。这就是为什么在你停止程序后,记忆依然挥之不去。在很多情况下,使用 gpu_options.allow_growth = True

防止 tf.Session gpu_options.allow_growth=True 允许在运行时使用定义的内存部分(使用50%,因为您的程序似乎可以使用大量内存),如下所示:

session_conf.gpu_options.per_process_gpu_memory_fraction = 0.5

您可以通过设置截断来设置此后数组生成。我已经建立了一个虚拟的例子,在这里我得到了非常小的值

zeroes = (np.arange(1, 10, 2))/1000500
print(zeroes)
##
#[9.99500250e-07 2.99850075e-06 4.99750125e-06 6.99650175e-06
# 8.99550225e-06]

zeroes[zeroes >= 5e-6] = 1
zeroes[zeroes < 5e-6] = 0
print(zeroes)
# [0. 0. 0. 1. 1.]

在这种情况下,所有小于5e-6的数组值都被赋值为0,所有大于等于5e-6的值都被赋值为1。分配你的截止值并应用过滤器。