# 显存问题
## 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))
```