TensorFlow:升級TensorFlow2.3踩坑記錄(Python)

升級TensorFlow2.3踩坑記錄(Python)


前言

原本是使用的TensorFlow2.0,處理時間序列數據時發現一個很好用的函數:tf.keras.preprocessing.timeseries_dataset_from_array。不料報錯沒有此函數,才知道這個函數要TensorFlow2.3及以上纔有,於是打算升級至TensorFlow2.3,過程中踩了幾個坑,記錄一下。


一、CUDA版本問題

原本使用的是CUDA10.0,看官網信息這樣顯示:TensorFlow 支持 CUDA® 10.1(TensorFlow 2.1.0 及更高版本)。想着一般CUDA是向下兼容的,於是直接把CUDA升級到了11.0,以免後面還要再升級CUDA。可是當我所有環境配置好之後顯示這樣的錯誤:

Could not load dynamic library ‘cudart64_101.dll’; dlerror: cudart64_101.dll not found

百思不得其解,查找資料發現CUDA版本只能是10.1,高一點都不行,遂重裝。

這裏分享一個小技巧,我們在下載CUDA時候網速會特別慢 ,我們只需要將下載鏈接複製到迅雷用迅雷下載就很快了。

二、GPU支持問題

CUDA版本問題解決了,開開心心運行TensorFlow,本以爲可以順利運行,但是又報了一個如下錯誤:

InternalError: CUDA runtime implicit initialization on GPU:0 failed. Status: device kernel image is invalid

找了半天才發現這個錯誤官網已經提示過:

The error message “Status: device kernel image is invalid” indicates that the TensorFlow package does not contain PTX for your architecture. You can enable compute capabilities by building TensorFlow from source.

白話就是TensorFlow2.3已經不支持老版本的GPU,需要通過從原代碼構建TensorFlow來安裝,直接爆炸,我用的是筆記本,GPU是GTX 960m,是舊了點,但是這也太無語了,如何通過原代碼構建TensorFlow的教程鏈接在這裏。我的選擇是放棄,轉回安裝TensorFlow2.2。至於那個好用的函數,只能用tf.keras.preprocessing.sequence.TimeseriesGenerator代替了。

總結

Pytorch yes

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章