升級TensorFlow2.3踩坑記錄(Python)
- 前言
- 一、CUDA版本問題
- 二、GPU支持問題
- 總結
前言
原本是使用的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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/236553.html
標籤:其他
