# 显存问题 ## Tensorflow配置动态显存 对于Tensorflow 1.x版本 ```python import tensorflow as tf config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True with tf.Session(config=config) as sess: # sess.run(your_task) sess = tf.Session(config=config) ``` 对于Tensorflow 2.x版本 ```python import tensorflow as tf tf.config.set_soft_device_placement(True) devices = tf.config.list_physical_devices('GPU') if len(devices) > 0: for device in devices: tf.config.experimental.set_memory_growth(device, True) ``` C++控制无敌 ```python import os os.environ['CUDA_VISIBLE_DEVICES'] = "0" os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = "true" ``` 使用tensorflow可以选定某块显卡 ```python with tf.device('/gpu:0'): ... ``` 限制显存的使用 ```python # 方案一 config = tf.ConfigProto() config.gpu_options.allow_growth = True sess = tf.Session(config=config, ...) # 方案二 config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.3 sess = tf.Session(config=config, ...) ``` ## Keras配置动态显存 ```python import os os.environ["CUDA_VISIBLE_DEVICES"] = "1" from keras.backend.tensorflow_backend import set_session config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.3 set_session(tf.Session(config=config)) ``` ```python import tensorflow as tf import keras config = tf.compat.v1.ConfigProto(allow_soft_placement=True) config.gpu_options.per_process_gpu_memory_fraction = 0.3 tf.compat.v1.keras.backend.set_session(tf.compat.v1.Session(config=config)) ```