我在for循环中拟合模型,但我得到一个错误,即GPU的内存已满。我在Anaconda Spyder IDE中使用Keras。我的GPU是华硕GTX 1060 6GB。
我还使用了以下代码:K.clear_session()
,gc.collect()
,tf.reset_default_graph()
,del custom_model但它们都不起作用。GPU属性显示的98%内存已满:
除了numba.cuda.close()
,没有什么可以刷新GPU内存,但不允许我再次使用我的GPU。清除它的唯一方法是重新启动内核并重新运行我的代码。
我正在寻找任何脚本代码添加我的代码,让我使用我的代码在循环和明确的GPU在每一个循环。
1条答案
按热度按时间1dkrff031#
将模型创建和训练部分封装在一个函数中,然后使用子流程进行主要工作。训练完成后,子进程将终止,GPU内存将释放。
类似于:
或者你可以创建下面的函数,并在每次运行之前调用它: