[1]win10+MX350显卡+CUDA10.2+PyTorch 安装过程记录 深度学习环境配置
[2]Windows 10 系统下 Python 3.8 安装详解
[3]win10 上python3.8.3的安装
[4]python安装pytorch
[5]win10下pytorch-gpu安装以及CUDA详细安装过程
[6]解决安装pytorch慢的方法(pip安装)
网上搭建深度学习环境的教程已有很多,且本文也是基于上述的参考资料借鉴和汇总而来(感谢参考资料里的博客的各位大佬),所以写这篇博客主要是为了记录自己搭建环境的过程。当以后需要再次搭建环境时,可以参考自己这篇博客。本文同时搭建了TensorFlow-gpu和PyTorch,遇到了很多坑,尤其是各个版本的问题。
2020款小新pro13,具体参数如下表所示。建议和我是同款配置电脑的朋友可以参考我的方法一路安装下来,如果不一样的话建议按照参考资料里的博客来,他们写的十分详细,方法也更具普适性。
项目 | 配置 |
---|---|
操作系统 | Windows10 家庭中文版 64位 |
显卡 | NVIDIA GeForce MX350 |
内存 | 16GB |
处理器 | Intel Core i7-10710U |
硬盘 | 西数 SN730 512GB |
因为各个框架的版本相互对应,稍有不对应的就会报错,同时新版本也更容易出问题,所以本文搭建环境用的均为老版本软件和包。
项目 | 版本 |
---|---|
Python | 3.7.8 |
CUDA | 10.0 |
cuDNN | 7.6.4 for CUDA 10.0 |
TensorFlow-gpu | 2.0.0 |
Keras | 2.3.1 |
PyTorch | 1.5.1 |
torchvision | 0.6.1 |
虽然在写博客这部分内容的时候都有3.8和3.9版本了,考虑到能用就行,不一味地追求最新,故使用3.7.8的老版本Python。官网下载Python
然后找到需要的版本3.7.8,下载64位(x86-64)的安装程序。
下载好后直接打开安装程序,底下两个勾选上,并选择自定义安装。
这些也全勾上。
由于我不爱把东西放在C盘,安装地址就不放在默认的C盘了,注意安装地址里不要有中文和空格,不然以后可能会出现想不到的意外。
最后这个Disable path length limit不用点,以后需要的时候可以在注册表里更改,直接点Close完成安装。
打开命令提示符,pip list一下能看见初始的两个包。
然后也可以输入python进入Python的环境,试一下打印"Hello World!"来确认安装成功。
print("Hello World!")
在cmd环境里,可以使用pip工具安装一些常用的包,并使用豆瓣的镜像来显著提升下载速度,比如:
pip install numpy -i https://pypi.douban.com/simple
安装完numpy后,我继续安装了pandas与matplotlib。
图片仍为安装10.0,后续我使用的是CUDA 10.1,对应CuDNN也需要更新,torch等环境无影响,
环境配置参考miniconda自使用那篇博客。
打开NVIDIA控制面板,点击帮助→系统信息→组件来确定CUDA的版本。
我的电脑对应10.2版本,但10.2属于相对较新的版本,我们不用,我们会使用10.0(<=10.2,故也可使用)的版本。在英伟达官网下载CUDA10.0。
我这里选下载本地版,安装包也较大,需要等一段时间。下载完成后运行安装程序,先进行解压,这个解压的地址无需更换。
解压完成后自动安装。
注意这里要去掉那个Visual Studio Integration。
在命令提示符里测试一下CUDA安装成功与否,输入:
nvcc -V
接着是cuDNN:先进入cuDNN的网址。在这点击Download cuDNN后,需要注册个英伟达账号,填写问卷。
注册完成后登录账号,并在浏览器里输入https://developer.nvidia.com/rdp/cudnn-archive,去找我们需要的版本。
下载完成后解压得到这几个文件。
全部覆盖到cuda的文件夹里,对于我来说,覆盖的文件夹如下图所示。
我安装的TensorFlow-gpu的版本为2.0.0,对应Keras的版本为2.3.1。首先安装TensorFlow-gpu,代码如下:
pip install tensorflow-gpu==2.0.0 -i https://pypi.douban.com/simple
再安装Keras。
pip install keras==2.3.1 -i https://pypi.douban.com/simple
安装完成后测试一下。
import tensorflow as tf
print(tf.test.is_gpu_available())
import keras
我们安装的torch版本与torchvision版本分别为1.5.1和0.6.1。先运行下面的代码。
pip install torch===1.5.1 torchvision===0.6.1 -f https://download.pytorch.org/whl/torch_stable.html
运行后可以发现首先是下载torch,而且速度很慢。找到红圈中的下载地址,复制,用迅雷等下载工具进行下载,可以先把最大的torch安装好,大大加快速度。
下载完成后再本地安装torch,代码如图中所示:
然而这样的安装方式会跳过了安装torchvision库。我们先用豆瓣源高速下载torchvision需要的Pillow库:
pip install pillow -i https://pypi.douban.com/simple
之后再安装torchvision,代码如下:
pip install torchvision===0.6.1 -f https://download.pytorch.org/whl/torch_stable.html
这样PyTorch的环境就算搭建好了。
测试一下代码,安装成功。
刚搭好环境也不会搭神经网络,就自己试着写个单位矩阵乘以标量的程序看下GPU的速度。
import torch
import time
import numpy as np
IM = np.identity(10000)
m1 = torch.FloatTensor(IM)
m2 = torch.cuda.FloatTensor(IM)
# gpu
time1 = time.time()
for i in range(1000):
m2 *= 1.001
time2 = time.time()
print("GPU: " + str(time2 - time1) + " sec")
# cpu
time1 = time.time()
for i in range(1000):
m1 *= 1.001
time2 = time.time()
print("CPU: " + str(time2 - time1) + " secs")
GPU: 0.01994633674621582 sec
CPU: 33.91177487373352 secs
根据这个不严谨的实验的运行结果来看,经过一系列的配置,PyTorch的环境搭建应该是没有问题的。
再次感谢参考资料中博客的各位大佬。如果本博客内容存在任何问题欢迎在评论区指正,谢谢大家。