我想为神经风格转换算法运行超参数调整,这会导致一个for循环,在每次迭代中,我的模型输出用不同超参数生成的图像。
它在使用GPU运行时的Google Colaboratory中运行。 在运行时,我会在某个时刻得到一个错误,说我的GPU内存几乎满了,然后程序就停止了。
所以我想也许有一种方法可以在某些特定的迭代次数之后清除或重置GPU内存,以便程序可以正常终止(通过for循环中的所有迭代,而不仅仅是1500个或3000个,因为GPU内存已满)。
我已经尝试过从网上找到的这段代码:
# Reset Keras Session
def reset_keras():
sess = get_session()
clear_session()
sess.close()
sess = get_session()
try:
del classifier # this is from global space - change this as you need
except:
pass
#print(gc.collect()) # if it's done something you should see a number being outputted
# use the same config as you used to create the session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 1
config.gpu_options.visible_device_list = "0"
set_session(tf.Session(config=config))
RuntimeError: CUDA error: an illegal memory access was encountered
错误提示。 - Adarsh Raj