回答
有幾種方法可以查看操作位置。
將RunOptions和RunMetadata添加到會話調用中,並在Tensorboard中查看ops和計算的位置。在此處查看代碼:https://www.tensorflow.org/get_started/graph_viz
在會話ConfigProto中指定log_device_placement選項。這將記錄以控制操作所在的設備。 https://www.tensorflow.org/api_docs/python/tf/ConfigProto
在使用nvidia-smi的終端中查看GPU使用情況。
請注意,記錄元數據非常耗費資源,只能用於調試。 – pfredriksen
當您導入TF在Python
import tensorflow as tf
你會得到這些日誌這表明CUDA庫的使用
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
此外,當你建立一個圖表,並運行與會話log_device_placement在Config Proto中,你會得到這些日誌(顯示它發現了一個GPU設備):
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1060 6GB
major: 6 minor: 1 memoryClockRate (GHz) 1.759
pciBusID 0000:01:00.0
Total memory: 5.93GiB
Free memory: 4.94GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0)
我得到了與上述相同的輸出。但是對於訓練的量模型與CPU相同。不知道,我做錯了什麼。 使用DNNRegressor估計器,並且在CPU和GPU上運行相同的代碼而無需任何修改,因爲我瞭解到,如果GPU可用,Estimtors默認選擇GPU執行。任何方式來圖? – user3457384
你能看到GPU的使用情況嗎?做「看nvidia-smi」。查看內存使用情況和GPU波動性。 – hars
這是我詳細解釋的問題。 https://stackoverflow.com/questions/46648484/how-to-make-best-use-of-gpu-for-tensorflow-estimators – user3457384
有一個相關的TensorFlow upstream issue。基本上它說Python API不公開這些信息。
然而,C++ API的確如此。例如。有tensorflow::KernelsRegisteredForOp()
。我寫了一個小Python包裝器,然後實現supported_devices_for_op
here(在this commit)。
- 1. 如何驗證Tensorflow服務正在GPU實例上使用GPU?
- 2. Tensorflow不是在GPU上運行
- 3. 在GPU上運行tensorflow文本模型
- 4. 如何驗證nginx是否在運行?
- 5. Tensorflow GPU正確安裝,但Anaconda在CPU上運行它
- 6. 是否在GPU上運行opengl代碼?
- 7. 如何讓GPU在GPU上運行?
- 8. 錯誤時GPU上運行tf.SVD - tensorflow
- 9. GPU tensorflow運行問題
- 10. tensorflow如何分配Ops在GPU上運行?
- 11. 如何使tensorflow在2.0版本的GPU上運行?
- 12. Python的Tensorflow運行在GPU代替CPU
- 13. 在virtualenv上運行GPU集羣上的tensorflow
- 14. 如何在GPU上運行代碼?
- 15. 如何讓GPU在網絡上運行
- 16. GPU上的Tensorflow OOM
- 17. Tensorflow運行GPU有多快(約)?
- 18. 分割故障運行tensorflow-GPU
- 19. 使用fglrx驅動程序在GPU上運行tensorflow
- 20. 如何驗證Windows服務是否正在運行
- 21. 如何判斷H2O 3.11.0.266是否在使用GPU運行?
- 22. Tensorflow GPU /多GPU如何分配內存?
- 23. 如何在GKE上運行Distributed Tensorflow?
- 24. 如何在AWS羣集上運行TensorFlow?
- 25. 確定Renderscript是否在CPU/GPU和線程數上運行
- 26. 確保Python代碼是否在GPU或CPU上運行
- 27. 邁爾斯差異是否適合在GPU上運行?
- 28. 是否可以在多個GPU上運行directcompute?
- 29. 如何驗證一個進程是否已經在powershell上運行?
- 30. 如何檢查keras是否使用tensorflow的gpu版本?
使用'nvprof'運行可以提供有關cuda函數調用的詳細信息。或者運行'nvidia-smi'來檢查GPU利用率。 – Kh40tiK
[TensorFlow如何才能運行腳本,除非GPU已成功加載?]的可能重複(http://stackoverflow.com/questions/42403501/how-does-one-have-tensorflow-not-run-the -script-unless-gpu-was-loaded-succes) –