tf.configproto
一般用在建立session
的時候。用來對session
進行引數配置
with tf.session(config = tf.configproto(...),...)
#tf.configproto()的引數
log_device_placement=true : 是否列印裝置分配日誌
allow_soft_placement=true : 如果你指定的裝置不存在,允許tf自動分配裝置
tf.configproto(log_device_placement=true,allow_soft_placement=true)
#allow growth
config =tf.configproto()
config.gpu_options.allow_growth =true
session = tf.session(config=config, ...)
#使用allow_growth option,剛一開始分配少量的gpu容量,然後按需慢慢的增加,由於不會釋放
#記憶體,所以會導致碎片
注:使用時,如果沒有分配gpu容量,新增: with session.as_default(): 嘗試。
#per_process_gpu_memory_fraction
gpu_options=tf.gpuoptions(per_process_gpu_memory_fraction=0.7)
config=tf.configproto(gpu_options=gpu_options)
session = tf.session(config=config, ...)
#設定每個gpu應該拿出多少容量給程序使用,0.4代表 40%
注:使用時,如果沒有分配gpu容量,新增: with session.as_default(): 嘗試。
~/ cuda_visible_devices=0 python your.py#使用gpu0
~/ cuda_visible_devices=0,1 python your.py#
使用gpu0,1
#注意單詞不要打錯
#或者在 程式開頭
os.environ['
cuda_visible_devices
'] = '0'
#使用 gpu 0
os.environ['
cuda_visible_devices
'] = '
0,1'
#使用 gpu 0,1
**:
tensorflow設定gpu及gpu視訊記憶體使用
os.environ cuda visible devices 0 使用 gpu 0 os.environ cuda visible devices 0,1 使用 gpu 0,1 一是讓tensorflow在執行過程中動態申請視訊記憶體,需要多少就申請多少 第二種方式就是限制gpu的使用率。conf...
tensorflow設定GPU佔用量
參考 tensorflow設定gpu佔用量 tensorflow在訓練時預設占用所有gpu的視訊記憶體。可以通過以下方式解決該問題 1 在構造tf.session 時候通過傳遞tf.gpuoptions作為可選配置引數的一部分來顯式地指定需要分配的視訊記憶體比例,如下所示 假如有12gb的視訊記憶體...
Tensorflow全域性設定可見GPU編號
筆者需要tensorflow僅執行在乙個gpu上 機器本身有多gpu 而且需要依據系統引數動態調節,故無法簡單使用cuda visible devices。一種方式是全域性使用tf.device函式生成的域,但裝置號需要在繪製graph前指定,仍然不夠靈活。查閱文件發現config的gpuoptio...