问题描述

在这里插入图片描述
显卡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

速度太慢可以用迅雷下载:

  1. torch-1.7.1+cu110-cp36-cp36m-win_amd64.whl
  2. torchvision-0.8.2+cu110-cp36-cp36m-win_amd64.whl
  3. 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. 测试





参考文献

  1. 根据显卡型号选择CUDA和cuDNN进行TensorFlow GPU版本安装
  2. 小米笔记本Pro 2020款
  3. TensorFlow Documentation
  4. Keras Documentation
  5. TensorFlow 2.0 入门
  6. How to Install PyTorch with CUDA 10.0
  7. Tensorflow和Keras对应版本
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐