TensorFlow指定CPU和GPU方法
TensorFlow指定CPU和GPU方法
TensorFlow 支持 CPU 和 GPU。它也支持分布式計算。可以在一個或多個計算機系統的多個設備上使用 TensorFlow。
TensorFlow 將支持的 CPU 設備命名為“/device:CPU:0”(或“/cpu:0”),第 i 個 GPU 設備命名為“/device:GPU:I”(或“/gpu:I”)。
如前所述,GPU 比 CPU 要快得多,因為它們有許多小的內核。然而,在所有類型的計算中都使用 GPU 也并不一定都有速度上的優勢。有時,比起使用 GPU 并行計算在速度上的優勢收益,使用 GPU 的其他代價相對更為昂貴。
為了解決這個問題,TensorFlow 可以選擇將計算放在一個特定的設備上。默認情況下,如果 CPU 和 GPU 都存在,TensorFlow 會優先考慮 GPU。
TensorFlow 將設備表示為字符串。文展示如何在 TensorFlow 中指定某一設備用于矩陣乘法的計算。
具體做法
? 要驗證 TensorFlow 是否確實在使用指定的設備(CPU 或 GPU),可以創建會話,并將 log_device_placement 標志設置為 True,即:
? 如果你不確定設備,并希望 TensorFlow 選擇現有和受支持的設備,則可以將 allow_soft_placement 標志設置為 True:
? 手動選擇 CPU 進行操作:
得到以下輸出:
可以看到,在這種情況下,所有的設備都是 ‘/cpu:0’。
? 手動選擇一個 GPU 來操作:
輸出現在更改為以下內容:
每個操作之后的’/cpu:0’現在被替換為’/gpu:0’。
? 手動選擇多個GPU:
在這種情況下,如果系統有 3 個 GPU 設備,那么第一組乘法將由’/:gpu:1’執行,第二組乘以’/gpu:2’執行。
解讀分析
函數 tf.device() 選擇設備(CPU 或 GPU)。with 塊確保設備被選擇并用于其操作。with 塊中定義的所有變量、常量和操作將使用在 tf.device() 中選擇的設備。
會話配置使用 tf.ConfigProto 進行控制。通過設置 allow_soft_placement 和 log_device_placement 標志,表示 TensorFlow 在指定的設備不可用時自動選擇可用的設備,并在執行會話時給出日志消息作為描述設備分配的輸出。
總結
以上是生活随笔為你收集整理的TensorFlow指定CPU和GPU方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TensorFlow XLA加速编译器
- 下一篇: 深度学习与TensorFlow