1. 程式人生 > >關於TensorFlow的GPU設定

關於TensorFlow的GPU設定

摘自:https://blog.csdn.net/byron123456sfsfsfa/article/details/79811286

1.  在使用GPU版的TensorFlow跑程式的時候,如果不特殊寫程式碼註明,程式預設是佔用所有主機上的GPU,但計算過程中只會用其中一塊。也就是你看著所有GPU都被佔用了,以為是在GPU平行計算,但實際上只有其中一塊在執行;另外的所有顯示卡都閒著,但其視訊記憶體都被佔用了,所以別人也用不了。不過這種情況通過在程式之前加三行程式碼就可以解決:

1 import os
2 os.environ["CUDA_DEVICE_ORDER"] = "
PCI_BUS_ID" 3 # 保證程式中的GPU序號是和硬體中的序號是相同的 4 5 os.environ['CUDA_VISIBLE_DEVICES'] = "0,1" 6 # 遮蔽掉系統中除 gpu0 和 gpu1 (gpu序號要根據實際情況來定)之外所有的GPU裝置 7 # 即設定僅gpu0,gpu1可見 8 # os.environ['CUDA_VISIBLE_DEVICES'] = "" 即不使用gpu

2. 避免TensorFlow程式會吃掉所用顯示卡的所有視訊記憶體,設定程式需要多少視訊記憶體就用多少

1 # TensorFlow程式會吃掉所用顯示卡的所有視訊記憶體
2
# 如果想讓程式需要多少視訊記憶體就用多少 3 # 建立 session 的時候加一項設定 4 config = tf.ConfigProto(log_device_placement=FLAGS.log_device_placement) 5 config.gpu_options.allow_growth = True 6 session = tf.Session(config=config)