使用tensorflow查询机器上是否存在可用的gpu设备
生活随笔
收集整理的這篇文章主要介紹了
使用tensorflow查询机器上是否存在可用的gpu设备
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要內容:
- 使用tensorflow查詢機器上是否存在可用的gpu設備
- 使用tensorflow獲取可用的gpu設備編號
- tensorflow對GPU設備的編碼
使用tensorflow查詢機器上是否存在可用的gpu設備
def is_gpu_available(cuda_only=True):"""code from https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/platform/test.pyReturns whether TensorFlow can access a GPU.Args:cuda_only: limit the search to CUDA gpus.Returns:True iff a gpu device of the requested kind is available."""from tensorflow.python.client import device_lib as _device_libif cuda_only:return any((x.device_type == 'GPU')for x in _device_lib.list_local_devices())else:return any((x.device_type == 'GPU' or x.device_type == 'SYCL')for x in _device_lib.list_local_devices())?
使用tensorflow獲取可用的gpu設備編號
def get_available_gpus():"""code from http://stackoverflow.com/questions/38559755/how-to-get-current-available-gpus-in-tensorflow"""from tensorflow.python.client import device_lib as _device_liblocal_device_protos = _device_lib.list_local_devices()return [x.name for x in local_device_protos if x.device_type == 'GPU']?
完整代碼見 tf.py, 測試代碼見test_util_tf.py.
tensorflow對GPU設備的編碼
執行:
CUDA_VISIBLE_DEVICES=1,2 python test_util_tf.py?
輸出為:
/gpu:0 /gpu:1?
可以看出, 無論CUDA可見的設備是哪幾個, tensorflow都會對它們從0開始重新編碼。
?
Tensorflow 使用時cpu編譯不支持警告
?原因是下載TensorFlow的版本不支持cpu的AVX2編譯。
可能是因為安裝時使用的pip install tensorflow ,這樣默認會下載X86_64的SIMD版本。
有兩種解決辦法:
1.忽略這個警告,不看它!
import os os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 這是默認的顯示等級,顯示所有信息 os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只顯示 warning 和 Error os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只顯示 Error2.徹底解決,換成支持cpu用AVX2編譯的TensorFlow版本。
首先,卸載原來版本的TensorFlow
pip uninstall tensorflow完成后可以用
pip list查看一下所有庫,檢查是否成功卸載。
然后去github下載正確的tf版本,Windows點這里這里下載。其他操作系統可以點這里這里找到對應的版本。博主用的win10,python3.6,所以選擇如下圖:
對應的path在上邊的找到對應的.whl下載即可。
然后安裝:
pip install tensorflow-1.6.0-cp36-cp36m-win_amd64.whl成功安裝后,再次運行TensorFlow就不會報錯啦~
?
總結
以上是生活随笔為你收集整理的使用tensorflow查询机器上是否存在可用的gpu设备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络网络参数的取值问题
- 下一篇: IEEE conference 中出现的