博主個人網站: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)