由於之前電腦問題導致系統重裝,需要重新安裝了GPU版的TensorFlow來跑人臉識別的代碼,發現安裝過程中與上一次筆記的不同了(有了新的版本匹配),這次是新的配置說明。
系統:Windows10
GPU:NVIDIA GeForce GTX 1050 Ti
Python:Anaconda3-5.0.0-Windows-x86_64,在win上安裝py3.6版本。
TensorFlow:tensorflow_gpu-1.13.1
CUDA:CUDA10.0
cudnn:https://developer.nvidia.com/rdp/cudnn-download(需要註冊)
這次安裝主要遇到一個問題,用簡單的代碼進行測試:
安裝完成之後,導入TensorFlow庫沒有問題,但是調用GPU設備時就報錯提示找不到設備。
運行錯誤:InvalidArgumentError (see above for traceback): Cannot assign a device for operation add: Operation was explicitly assigned to /device:GPU:0 but available devices are [ /job:localhost/replica:0/task:0/device:CPU:0 ]. Make sure the device specification refers to a valid device.
[[node add (defined at <ipython-input-3-3158f2cabb05>:6) = Add[T=DT_FLOAT, _device="/device:GPU:0"](a, b)]]
百度翻譯:InvalidArgumentError(有關回溯,請參閱上面的內容):無法爲操作分配設備add:操作已顯式分配給/device:gpu:0,但可用設備是[/job:localhost/replica:0/task:0/device:cpu:0]。確保設備規格引用了有效的設備。
[節點添加(定義於<ipython-input-3-3158f2cabb05>:6)=add[t=dt_float,_device=“/device:gpu:0”](a,b)]
後來使用了幾種方式,問題終於解決了。
- 把代碼中的“with tf.device('/gpu:0'):”改爲了“with tf.device(None):”。
- tf.Session中config = tf.ConfigProto(allow_soft_placement=True) ,allow_soft_placement爲True時當GPU調用不了時會默認選擇CPU調用,而爲False時爲選擇調用GPU。
- 檢查安裝Cuda 和 cuDNN安裝是否有問題,若沒問題,卸載tensorflow(CPU與GPU版),再次重裝了tensorflow-gpu。
- 檢查GPU是否有開啓。
文章未經博主同意,禁止轉載!