我想训练一个具有多种配置的模型(约100种不同情况)。我的主要算法位于要启动100次的主要.py文件中。该.py文件运行良好,如果我执行一次,一切正常。
我创建了另一个.py文件,该文件调用第一个文件并为其提供每个参数。问题是在第二次培训期间的某个随机时间,我遇到一个ResourceExhaustedError。
ResourceExhaustedError: OOM when allocating tensor with shape[4096,1] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[node predictions_16/random_uniform/RandomUniform (defined at /home/acarlier/venv/local/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py:4139) = RandomUniform[T=DT_INT32, dtype=DT_FLOAT, seed=87654321, seed2=7886430, _device="/job:localhost/replica:0/task:0/device:GPU:0"](predictions_16/random_uniform/shape)]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.
我有一个GTX 1060 6GB。因此,我认为主.py文件在两次迭代之间没有很好地关闭。是否可以关闭它(以干净的方式)并启动它以进行其他培训?
谢谢
编辑:
我试图:
from my_main_keras_file import train_function
train_function(all my parameters)
del train_function
但是我仍然有同样的问题,del并没有删除函数执行期间创建的所有内容。
答案 0 :(得分:0)
我在训练.py文件的末尾添加了keras.backend.clear_session()。这样可以清楚地完成会话,现在我可以一一计算出几项训练了!
谢谢@sebrockm