Win10+Tensorflow2 + CUDA11 GPU环境搭建
Win10+Tensorflow2 + CUDA11 GPU环境搭建
引言
前段时间有个朋友问我,学长发生什么事了,我问怎么回事,给我发了几张截图。我一看,哦,原来是佐田,有一块RTX3090的显卡,显存一个24G,CUDA核心数5248。塔门说跑Tensorflow2练功,结果跑半天不动,学长能不能我用混元功法给治治,我说可以…
原先是参照知乎一个网友给出的配置方案:
CUDA :cuda_10.1.243_426.00_win10
CUDnn:cudnn-10.1-windows10-x64-v7.6.5.32
python:3.7.9
tensorflow:tensorflow_gpu-2.3.0-cp38-cp38-win_amd64.whl
以上配置可自行在官网下载
tensorflow-gpu版本国内镜像源:
tensorflow-gpu 清华镜像源
结果是,全部都可以正常编译,nvcc也没问题,tensorflow也能识别出显卡,但是就是卡在这一步不动
结果我先是耐心等待了十几分钟,最后终于跑出来了,也试了几个简单的网络,都可以正常训练,但是前期加载显卡的过程实在太长了。
我觉得事情不是那么简单。后来才知道RTX3090的算力是8.6,而但是CUDA10.2已经以下的版本全都不支持computeCapability 8.*的了。
所以…环境拆掉重新建,具体我参照了这位博主的配置:
在GeForce RTX 3090下运行Tensorflow2
but…
该博主使用的tensorflow2.4rc0版本我一直装不上去,装上去之后numpy报错了…
于是我尝试使用了tensorflow2.4rc2版本,numpy依然报错…
后来一看,原来是tensorflow2.4rc版本的numpy1.19版本的不稳定,不止我一个人出现这样的报错,索性把numpy卸载!
pip uninstall numpy
pip install numpy==1.18
之后,编译成功,tensorflow跑网络秒飞。
上测试代码
import tensorflow as tf
print(tf.__version__)
print('My GPU is',tf.test.is_gpu_available())
结果如图:
说一下具体配置
CUDA:cuda_11.0.3_451.82_win10.exe
CUDnn:cudnn-11.0-windows-x64-v8.0.5.39
python:3.7.9 /3.8
tensorflow:tensorflow_gpu-2.4.0rc2-cp37-cp37m-win_amd64.whl
tensorflow:tensorflow-2.3.0-cp38-cp38-win_amd64.whl(下载链接)
注:以上tensorflow3.8版本是网友自行编译的,原文链接如下:
win10+tensorflow2.3GPU+cuda11+cudnn8+python3.8编译(AVX2)
1 安装python3.7.9
直接去官网下载就可
Python3.7.9 exe版本下载
2 安装CUDA
一路同意即可…
3 CUDnn
下面文件夹的内容分别复制粘贴到CUDA安装目录的对应文件夹即可
具体参照博客win10下CUDA和CUDNN的安装(超详细)!亲测有效!
4 配置环境变量
编辑系统环境变量PATH如图
5 测试
测试CUDA
cmd中输入nvcc -V 显示如下图信息
进入 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite 目录下
cmd运行deviceQuery.exe
运行bandwidthTest.exe :
证明可以正常使用CUDA
6 安装Tensorflow2.x
镜像源我已经放在开头的链接了,下载完成后进入下载目录然后cmd安装就可以了
7 更换numpy
pip uninstall numpy
pip install numpy==1.18
8 测试tensorflow
import tensorflow as tf
print(tf.__version__)
print('My GPU is',tf.test.is_gpu_available())
9 跑一个简单的网络,感受一下算力…
begin = time.time()
n_classes = 10
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(
32,(5,5),activation = tf.nn.relu, input_shape = (28,28,1)),
tf.keras.layers.MaxPool2D((2,2),(2,2)),
tf.keras.layers.Conv2D(64,(3,3),activation = tf.nn.relu),
tf.keras.layers.MaxPool2D((2,2),(2,2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(1024,activation=tf.nn.relu),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(n_classes)
])
model.summary()
(train_x, train_y),(test_x,test_y) = fashion_mnist.load_data()
train_x = train_x/255. *2 -1
test_x = test_x/255. *2 -1
train_x = tf.expand_dims(train_x, -1).numpy()
test_x = tf.expand_dims(test_x, -1).numpy()
model.compile(
optimizer=tf.keras.optimizers.Adam(1e-5),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_x,train_y,epochs=10,batch_size = 100)
model.evaluate(test_x, test_y)
end = time.time()
print('It cost',end-begin,'s')
正在训练…
显卡风扇都懒得转…
训练完成!
更多推荐
所有评论(0)