tensorflow設定GPU佔用量

2021-09-19 10:16:59 字數 823 閱讀 2935

**

參考:tensorflow設定gpu佔用量

tensorflow在訓練時預設占用所有gpu的視訊記憶體。

可以通過以下方式解決該問題:

1、在構造tf.session()時候通過傳遞tf.gpuoptions作為可選配置引數的一部分來顯式地指定需要分配的視訊記憶體比例,如下所示:

# 假如有12gb的視訊記憶體並使用其中的4gb:

gpu_options = tf.gpuoptions(per_process_gpu_memory_fraction=0.333)

sess = tf.session(config=tf.configproto(gpu_options=gpu_options))

per_process_gpu_memory_fraction指定了每個gpu程序中使用視訊記憶體的上限,但它只能均勻作用於所有gpu,無法對不同gpu設定不同的上限

2、嘗試如下設定:

config = tf.configproto()

config.gpu_options.allow_growth=true

sess = tf.session(config=config)

當allow_growth設定為true時,分配器將不會指定所有的gpu記憶體,而是根據需求增長

3、指定gpu編號:

import os

os.environ["cuda_visible_devices"] = "0"

或者在指令碼或者命令列中指定

export cuda_visible_devices=0

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佔用量

tf.configproto一般用在建立session的時候。用來對session進行引數配置 with tf.session config tf.configproto tf.configproto 的引數 log device placement true 是否列印裝置分配日誌 allow so...

Tensorflow全域性設定可見GPU編號

筆者需要tensorflow僅執行在乙個gpu上 機器本身有多gpu 而且需要依據系統引數動態調節,故無法簡單使用cuda visible devices。一種方式是全域性使用tf.device函式生成的域,但裝置號需要在繪製graph前指定,仍然不夠靈活。查閱文件發現config的gpuoptio...