引言

前段时间有个朋友问我,学长发生什么事了,我问怎么回事,给我发了几张截图。我一看,哦,原来是佐田,有一块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')


正在训练…
在这里插入图片描述
显卡风扇都懒得转…
在这里插入图片描述
训练完成!
在这里插入图片描述

GitHub 加速计划 / te / tensorflow
184.54 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:26 天前 )
a49e66f2 PiperOrigin-RevId: 663726708 1 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 1 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐