为了让TF使用我的RTX GPU并使用混合精度训练,我使用TF 2.4,我必须将这些行添加到所有涉及训练或执行TF模型的代码中:
if ('RTX' in os.popen('nvidia-smi -L').read()) and ('2.4' in tf.__version__):
from tensorflow.keras import mixed_precision
mixed_precision.set_global_policy('mixed_float16')
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)if语句之所以存在,仅仅是因为我还有一台非RTX机器,有时我也会使用它。问题是,如果我使用不同的参数运行两次脚本,我总是会收到一个警告,说交互式会话是打开的,这可能会导致内存泄漏。简单的解决办法是每次重新启动Spyder,但是我想关闭这个会话。我试过:
tf.InteractiveSession.close()但这会造成一个错误。我使用Keras,所以我不擅长纯TF,当然有一个简单的命令来关闭会话吗?THX。
发布于 2021-03-10 20:02:29
不可能对InteractiveSession类本身调用.close(),而是在类的一个实例上调用。
因此,由于在InteractiveSession会话变量中有一个实例,您应该使用:
session.close()。
发布于 2021-03-10 19:22:11
session.close(),由whoisraibolt在上面发布。
https://stackoverflow.com/questions/66567234
复制相似问题