Tensorflow在启动的时候会占用所有显存,然后自行对显存进行管理,这是tensorflow的显存管理机制,他可以申请到连续的显存地址然后进行分配,这样对显存的使用更高效,在实际使用中,由于显存资源比较紧张,所以可以通过一些简单的配置来让tensorflow运行时只分配实际所需的显存,后续需要的显存再进行动态申请和分配,主要有两种方法。
1.添加TF_FORCE_GPU_ALLOW_GROWTH环境变量
export TF_FORCE_GPU_ALLOW_GROWTH=true
或者在代码中进行设置
import os
os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'
2.通过tensorflow内的allow_growth来调整
import tensorflow as tf
config = tf.compat.v1.ConfigProto() config.gpu_options.allow_growth = True # 动态分配 GPU 内存 sess = tf.compat.v1.Session(config=config)
3.使用swap_memory将部分计算从GPU战役到CPU,使用RNN场景。
rnn_output = tf.nn.bidirectional_dynamic_rnn(cell_fw, cell_bw, inputs, swap_memory=True)
- 标签
- tensorflow
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1062
评论列表