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 FilesNVIDIA GPU Computing ToolkitCUDAv10.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_MACHINESYSTEMCurrentControlSetControlFileSystem@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

输出结果:

原文地址:https://www.cnblogs.com/HongYi-Liang/p/13549382.html