小米笔记本Pro 2020款 显卡MX350 CUDA+cuDNN tensorflow-gpu安装
安装Python>=3.6.2 CNDA 11.0 cuDNN,内含详细步骤和测试代码,已上传百度云盘
文章目录
问题描述

显卡MX350,安装tensorflow-gpu,keras,torch
Python版本不可低于 3.6.2
CUDA是一种通用并行计算架构
cuDNN是一个用于深度神经网络的图形处理器加速库
解决方案
| 版本 | CUDA+cuDNN | 百度网盘 |
|---|---|---|
| tensorflow-gpu==2.4.0 | CUDA 11.0 + cuDNN for CUDA 11.0 | 百度云盘 |
| tensorflow-gpu==2.3.0 | CUDA 10.1 + cuDNN for CUDA 10.1(最好装7.6.5的cuDNN) | 百度网盘(o5by) |
详细步骤
1. 查看显卡支持的CUDA版本
桌面右键 → NVIDIA控制面板 → 帮助 → 系统信息 → 组件

2.下载CUDA 11.0
命令行输入nvcc -V

3. 下载cuDNN
搜索【CUDA 11.0】,找个版本下载

4. 配置环境变量
5. 重启PyCharm
若不重启,后续运行可能会报错 Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
TensorFlow
1. 查看版本
访问Tensorflow官网,右上角Language设为English,滚动到页面底部,CUDA 11.0+cuDNN 8.0.5,装tensorflow-gpu 2.4.0
2. 安装
pip install tensorflow-gpu==2.4.0
3. 测试
import tensorflow as tf
tf.debugging.set_log_device_placement(True)
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)
print('Num GPUs Available: ', len(tf.config.experimental.list_physical_devices('GPU')))
# Num GPUs Available: 1
4. 查看显卡利用率
nvidia-smi
5. 多GPU训练
查阅 Easiest way toward Multi-GPU training in Tensorflow 2
Keras
1. 安装
pip install keras
2. 测试
from tensorflow.python.keras import backend
print(backend._get_available_gpus())
# ['/device:GPU:0']
3. 训练模型
from tensorflow.keras.layers import Dense
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.utils import to_categorical
# 数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data() # 读取并划分MNIST训练集、测试集
X_train = X_train.reshape(len(X_train), -1) # 二维变一维
X_test = X_test.reshape(len(X_test), -1)
X_train = X_train.astype('float32') # 转为float类型
X_test = X_test.astype('float32')
X_train = (X_train - 127) / 127 # 灰度像素数据归一化
X_test = (X_test - 127) / 127
y_train = to_categorical(y_train, num_classes=10) # 独热编码。如原来为5,转换后[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
y_test = to_categorical(y_test, num_classes=10)
# 定义模型
model = Sequential() # Keras序列模型
model.add(Dense(20, input_shape=(784,), activation='relu')) # 添加全连接层(隐藏层),隐藏层数20层,激活函数为ReLU
model.add(Dense(10, activation='sigmoid')) # 添加输出层,结果10类,激活函数为Sigmoid
print(model.summary()) # 模型基本信息
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 编译模型
# 训练
model.fit(X_train, y_train, epochs=20, batch_size=64, verbose=1, validation_split=0.05) # 迭代20次
# 评估
loss, accuracy = model.evaluate(X_test, y_test)
print('Test loss:', loss)
print('Accuracy:', accuracy)
# 保存
model.save('mnistmodel.h5')
4. 测试
import random
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import load_model
# 加载
mymodel = load_model('mnistmodel.h5')
# 数据集
(_, _), (X_test, y_test) = mnist.load_data() # 划分MNIST训练集、测试集
while True:
# 随机数
index = random.randint(0, X_test.shape[0])
x = X_test[index]
y = y_test[index]
# 显示该数字
plt.imshow(x, cmap='gray_r')
plt.title('original {}'.format(y))
plt.show()
# 预测
x.shape = (1, 784) # 变成[[]]
predict = mymodel.predict(x)
predict = np.argmax(predict) # 取最大值的位置
print('index:', index)
print('original:', y)
print('predicted:', predict)
print()
q = input('回车继续,q退出')
if q == 'q':
break
正确预测:
错误预测:


PyTorch
1. 查看版本
访问PyTorch官网,选择版本,执行命令
2. 安装
pip install torch===1.7.1+cu110 torchvision===0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
速度太慢可以用迅雷下载:
- torch-1.7.1+cu110-cp36-cp36m-win_amd64.whl
- torchvision-0.8.2+cu110-cp36-cp36m-win_amd64.whl
- torchaudio-0.7.2-cp36-none-win_amd64.whl
已打包上传百度云盘
3. 测试
import torch
print(torch.cuda.is_available())
# True
MXNet(待完成)
1. 查看版本
访问MXNet官网,选择版本,执行命令
2. 安装
pip install mxnet-cu110 -f https://dist.mxnet.io/python
根据MXNet的安装包发布,目前安装包全是Linux平台的
3. 测试
参考文献
更多推荐
所有评论(0)