numba和tensorflow一起给出了CUDA_ERROR_OUT_OF_MEMORY

时间:2018-03-05 02:08:29

标签: python tensorflow cuda numba

我在python中使用了numba和tensorflow来计算3-d循环问题。

首先,我多次使用numba来准备输入数据,一切都很好。 然后我使用tensorflow进行深度学习,一切都很好。

接下来,当我第二次回到上面的程序,即使用numba时,它给了我一个错误CUDA_ERROR_OUT_OF_MEMORY。

如果我杀死线程并重新启动内核,我可以运行它但在第二次运行时仍然失败。

似乎问题在于张量流,但我不知道。 我在代码的开头和结尾添加了numba.cuda.defer_cleanup(),但它没有多大帮助。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以尝试调整TF尝试在其初始分配中占用的可见内存分数。 例如:假设您有12GB的GPU内存,并想分配~4GB:

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

config = tf.ConfigProto()
config.gpu_options.allow_growth = True 
sess = tf.Session(config=config,graph=detection_graph)

在第二种方法中,您将告诉TF允许GPU增长。这些选项可以帮助您解决问题