使用tensorflow查询机器上是否存在可用的gpu设备
主要內(nèi)容:
- 使用tensorflow查詢機(jī)器上是否存在可用的gpu設(shè)備
- 使用tensorflow獲取可用的gpu設(shè)備編號(hào)
- tensorflow對(duì)GPU設(shè)備的編碼
使用tensorflow查詢機(jī)器上是否存在可用的gpu設(shè)備
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設(shè)備編號(hào)
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']?
完整代碼見(jiàn) tf.py, 測(cè)試代碼見(jiàn)test_util_tf.py.
tensorflow對(duì)GPU設(shè)備的編碼
執(zhí)行:
CUDA_VISIBLE_DEVICES=1,2 python test_util_tf.py?
輸出為:
/gpu:0 /gpu:1?
可以看出, 無(wú)論CUDA可見(jiàn)的設(shè)備是哪幾個(gè), tensorflow都會(huì)對(duì)它們從0開(kāi)始重新編碼。
?
Tensorflow 使用時(shí)cpu編譯不支持警告
?原因是下載TensorFlow的版本不支持cpu的AVX2編譯。
可能是因?yàn)榘惭b時(shí)使用的pip install tensorflow ,這樣默認(rèn)會(huì)下載X86_64的SIMD版本。
有兩種解決辦法:
1.忽略這個(gè)警告,不看它!
import os os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 這是默認(rèn)的顯示等級(jí),顯示所有信息 os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只顯示 warning 和 Error os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只顯示 Error2.徹底解決,換成支持cpu用AVX2編譯的TensorFlow版本。
首先,卸載原來(lái)版本的TensorFlow
pip uninstall tensorflow完成后可以用
pip list查看一下所有庫(kù),檢查是否成功卸載。
然后去github下載正確的tf版本,Windows點(diǎn)這里這里下載。其他操作系統(tǒng)可以點(diǎn)這里這里找到對(duì)應(yīng)的版本。博主用的win10,python3.6,所以選擇如下圖:
對(duì)應(yīng)的path在上邊的找到對(duì)應(yīng)的.whl下載即可。
然后安裝:
pip install tensorflow-1.6.0-cp36-cp36m-win_amd64.whl成功安裝后,再次運(yùn)行TensorFlow就不會(huì)報(bào)錯(cuò)啦~
?
總結(jié)
以上是生活随笔為你收集整理的使用tensorflow查询机器上是否存在可用的gpu设备的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 神经网络网络参数的取值问题
- 下一篇: IEEE conference 中出现的