TensorFlow中tf.ConfigProto()配置Sesion运算方式
博主个人网站:https://chenzhen.online
tf.configProto
用于在创建Session
的时候配置Session
的运算方式,即使用GPU运算或CPU运算;
1. tf.ConfigProto()
中的基本参数:
session_config = tf.ConfigProto(
log_device_placement=True,
allow_soft_placement=True,
inter_op_parallelism_threads=0,
intra_op_parallelism_threads=0)
sess = tf.Session(config=session_config)
参数 | 用法 |
---|---|
log_device_placement=True |
设置为True 时,会打印出TensoFlow使用了哪种操作; |
allow_soft_placement=True |
当运行设备不满足要求时,会自动分配GPU或CPU; |
inter_op_parallelism_threads=0 |
一个操作内部并行运算的线程数; |
intra_op_parallelism_threads=0 |
多个操作并行运算的线程数; |
2. tf.ConfigProto
配置GPU
2.1 判断TensorFlow是否能够使用GPU运算
result = tf.test.is_built_with_cuda()
print(result)
2.2 两种方式配置使用具体哪块GPU
# 方式一:在python程序中设置
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
os.environ['CUDA_VISIBLE_DEVICES'] = '0, 1'
# 方式二:在执行.py文件时,指定具体GPU块
CUDA_VISIBLE_DEVICES=0,1 python test.py
2.3 动态申请GPU显存
session_config = tf.ConfigProto() # 配置见第1节
session_config.gpu_options.allow_growth = True # 动态申请
sess = tf.Session(config=session_config)
2.4 限制GPU的使用率
session_configsession_config = tf.ConfigProto() # 配置见第1节
session_config.gpu_options.per_process_gpu_memory_fraction = 0.4 # 占用40%显存
session = tf.Session(config=session_config)