tensorflow安裝: win10 + RTX2060 + tensorflow1.15.0+ cuda10.0 + VScode


引言:

之前用的tensorflow 1.10版本,發現在訓練CNN的時候會自動中止,最后定位到加入卷積層就會導致訓練崩潰/中止,只用全連接層卻能正常訓練。重裝一天后無果,干脆全部升級使用tensorflow1.15:

改用WIN10+python3.7+tensorflow1.15.0+CUDA10.0(+cudnn7.6.5)+VScode

順便記錄下過程

我的筆記本配置:ryzen7 4800h+RTX2060+16G 3200 DDR4 RAM+1.5T SSD 

因為我們要安裝的GPU版本的tensorflow, 只要大佬你的顯卡和我的一樣(無論是筆記本還是台式機)就可以照這個流程安裝了

 

 

安裝目錄:

1.python3.7

2.VScode(或者各位大佬熟悉的其他IDE)

3.CUDA10.0

4.CUDNN7.6

5.tensorflow_gpu 1.15.0

 

1.python3.7

注意tensorflow_gpu 1.15.0對應必須使用python3.7的版本,如果大佬們原來用的其他版本,要先換為py3.7的環境

從win10自帶應用市場安裝最方便,而且環境自動配好

1.電腦桌面左下角win旁邊的搜索框中輸入 microsoft store, 打開應用商店后右上角找python搜索

2.從結果中找到python3.7安裝

 

 

驗證:如果大佬第一次裝python, 可以粗略用cmd驗證一下:cmd窗口輸入python -V , 會提示python 版本 3.7.x

 

進一步驗證:可以打開桌面左下角搜索框輸入IDLE  (python自帶的IDE)

print('hello world')+回車(注意使用英文輸入法), 沒報錯則okay

 

 

 2.IDE:VScode

全稱為:Visual studio code . 這個IDE相對pycharm來說更簡潔,有巨量的第三方插件,還自帶的第三方插件安裝平台,免費而且啥計算機語言都支持。很喜歡這個IDE,這里牆裂推薦各位大佬使用。這步不是必要的,各位大佬也可以使用自己熟悉的IDE

微軟的官網下載:https://code.visualstudio.com/

安裝既能用,在左方插件欄可以找到各種你想要或者不想要的python插件(其中一個叫python的插件必須安裝不然編譯不了)

 

 

 

3.CUDA10.0

下載地址:https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

現在說只有基礎包,沒有補丁,下載基礎包安裝就好了。

·安裝的時候出現選擇里邊,驅動和pyhsx不是必須的(前提是如果你已經安裝了比安裝提示更新版本的驅動)

·安裝里邊VS2015相關的東西不是必須的,如果你只在python環境下做深度學習

·環境是安裝的時候自動加好的

注意下載版本是對的,如下圖:是CUDA Toolkit 10.0 ; 是CUDA Toolkit 10.0 ; 是CUDA Toolkit 10.0 ; 是CUDA Toolkit 10.0 ; 重要的事情說3遍

 

驗證:

桌面右下角搜索窗口輸入cmd 

輸入nvcc -V

會顯示CUDA的信息

 

 

 

 

4.CUDNN 7.6.5

官方下載鏈接(需要登陸,如果大佬第一次用,最快的時選擇社交賬號->微信登陸):https://developer.nvidia.com/rdp/cudnn-archive

選擇 CUDNN v7.6.5 for CUDA 10.0 里邊的 win10版本

注意:選擇 CUDNN v7.6.5 for CUDA 10.0  ; 選擇 CUDNN v7.6.5 for CUDA 10.0 ; 選擇 CUDNN v7.6.5 for CUDA 10.0 重要的事情說三遍

 

 

 

 

 

 

 

下載后解壓,並把解壓后的文件全部復制到CUDA中

我們在上一步裝的是CUDA10.0 ,默認路徑如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0

 

 

5.tensorflow_gpu

我們要安裝的是tensorflow 1 系列最新(現在來說)的版本1.15, 需求的CUDA10.0 和CUDNN我們已經在上面兩步裝上了

cmd窗口 , 用pip install 指令安裝, 為了加速,這里我們使用國內清華鏡像站加速:

完整的指令為:

pip install tensorflow_gpu==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

所有的依賴包都會順帶安裝好:

 

我在安裝過程報了一次錯:

ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\Denn.Dumbledore\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\tensorflow_estimator\\python\\estimator\\canned\\linear_optimizer\\python\\utils\\__pycache__\\sharded_mutable_dense_hashtable.cpython-37.pyc'

原因是注冊列表長度限制:

找到一個網上的解答https://stackoverflow.com/questions/59388330/tensorflow-installation-problem-on-windows-10

引用h.meng的回答:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled to 1. You can do it by Win+R, and type regedit and you can change the setting above. Hope my answer works for you.

解除注冊列表長度限制后,重新按照第5步安裝一下

成功會提示succefully installed xxx包 xxx包 xxx包...

 

 

 到這里所有的安裝已經完成了

 

驗證:

為了確保這次安裝的tensorflow1.15沒有出現之前1.10奇怪的訓練問題,我這里用包含一個卷積層、一個池化層、一個全連接層的簡單模型測試一下:

1.隨便在哪個你喜歡的路徑建立一個文件夾,在文件夾里邊新建一個python文件隨便命名,比如:Demo.py

2.打開VScode

3.把剛剛新建的文件夾用鼠標左鍵拖到vscode的主窗口中,輸入下面這個模型的代碼,按F5運行

注意:

·此Demo需要使用mnist數據集測測試:

(這個數據集是第一次運行自動從網絡指定路徑下載的,如果是各位大佬第一次使用這個數據集可能會出現下載數據集超時的網絡問題,這樣子的話可以直接報錯鏈接處下載好數據,再放入keras dataset的路徑,具體方法可以百度搜索錯誤內容)

·這個DEMO是一個3層模型:

  ·1個卷積層6*5*5

  ·1個池化層2*2

  ·1個全連接層120

展開瀏覽代碼:

#Demo
import tensorflow as tf 
import numpy as np

#train set
(x_train,y_train),(x_test,y_test)=tf.keras.datasets.mnist.load_data()

#normalization
x_train = tf.keras.utils.normalize(x_train)
x_test = tf.keras.utils.normalize(x_test)

#one more channel is needed to convolution layer
x_train=x_train.reshape(-1,28,28,1)
x_test=x_test.reshape(-1,28,28,1)

#label:one_hot()
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)#numpy


#model instantiation
model= tf.keras.models.Sequential()
#convolution  6*5*5 
model.add(tf.keras.layers.Conv2D(6,(5,5),activation='relu',input_shape=(28,28,1),padding="same"))
#pooling  2*2
model.add(tf.keras.layers.MaxPooling2D(pool_size=(2,2)))
#dropout, in case of over fitting
model.add(tf.keras.layers.Dropout(0.25))
#flatten
model.add(tf.keras.layers.Flatten())
#full connection 120
model.add(tf.keras.layers.Dense(120,activation='relu'))
#dropout, in case of over fitting
model.add(tf.keras.layers.Dropout(0.5))
#output layer : softmax 
model.add(tf.keras.layers.Dense(10,activation='softmax'))
#set optimizer and loss function
model.compile(optimizer='adam',loss=tf.keras.losses.categorical_crossentropy,metrics=['accuracy'])

#train
result = model.fit(x_train,y_train,epochs=2,validation_data=(x_test,y_test))
print('fitting process finished')

#get loss and accuratity
val_loss,val_acc=model.evaluate(x_test,y_test)
print('loss:',val_loss,'acc:', val_acc)

#check with the first 10 data in the test set
predictions=model.predict(x_test[:10])

print(predictions)
for i in range(10):
    predicted_number = np.argmax(predictions[i])#get the max one, which is the most probablity of the prediction
    print( 'prediction:',predicted_number,'groundTrue:',y_test[i])
View Code

 

輸出結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM