Windows10+Python3.7.8搭建深度学习环境

目录

  • 参考资料
  • 写博客的动机
  • 电脑配置
  • 重要:版本汇总
  • 安装Python3.7.8
  • pip安装Numpy等包
  • 安装CUDA (10.1)
  • 安装cuDNN
  • 安装TensorFlow-gpu
  • 安装PyTorch
  • 简单小测试
  • 结束语

参考资料

[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

安装Python3.7.8

虽然在写博客这部分内容的时候都有3.8和3.9版本了,考虑到能用就行,不一味地追求最新,故使用3.7.8的老版本Python。官网下载Python

然后找到需要的版本3.7.8,下载64位(x86-64)的安装程序。
Windows10+Python3.7.8搭建深度学习环境_第1张图片
下载好后直接打开安装程序,底下两个勾选上,并选择自定义安装。
Windows10+Python3.7.8搭建深度学习环境_第2张图片
这些也全勾上。
Windows10+Python3.7.8搭建深度学习环境_第3张图片

由于我不爱把东西放在C盘,安装地址就不放在默认的C盘了,注意安装地址里不要有中文和空格,不然以后可能会出现想不到的意外。

Windows10+Python3.7.8搭建深度学习环境_第4张图片
最后这个Disable path length limit不用点,以后需要的时候可以在注册表里更改,直接点Close完成安装。
Windows10+Python3.7.8搭建深度学习环境_第5张图片
打开命令提示符,pip list一下能看见初始的两个包。
Windows10+Python3.7.8搭建深度学习环境_第6张图片
然后也可以输入python进入Python的环境,试一下打印"Hello World!"来确认安装成功。

print("Hello World!")

pip安装Numpy等包

在cmd环境里,可以使用pip工具安装一些常用的包,并使用豆瓣的镜像来显著提升下载速度,比如:

pip install numpy -i https://pypi.douban.com/simple

安装完numpy后,我继续安装了pandas与matplotlib。

安装CUDA (10.1)

图片仍为安装10.0,后续我使用的是CUDA 10.1,对应CuDNN也需要更新,torch等环境无影响,
环境配置参考miniconda自使用那篇博客。

打开NVIDIA控制面板,点击帮助→系统信息→组件来确定CUDA的版本。
Windows10+Python3.7.8搭建深度学习环境_第7张图片
我的电脑对应10.2版本,但10.2属于相对较新的版本,我们不用,我们会使用10.0(<=10.2,故也可使用)的版本。在英伟达官网下载CUDA10.0。
Windows10+Python3.7.8搭建深度学习环境_第8张图片

我这里选下载本地版,安装包也较大,需要等一段时间。下载完成后运行安装程序,先进行解压,这个解压的地址无需更换。
Windows10+Python3.7.8搭建深度学习环境_第9张图片

解压完成后自动安装。

Windows10+Python3.7.8搭建深度学习环境_第10张图片

选择自定义安装。
Windows10+Python3.7.8搭建深度学习环境_第11张图片

注意这里要去掉那个Visual Studio Integration。
Windows10+Python3.7.8搭建深度学习环境_第12张图片

这里我又自作主张,不安装到默认的C盘。
Windows10+Python3.7.8搭建深度学习环境_第13张图片

按照上图默认的命名方式,自己在D盘创建一些同名文件夹。
Windows10+Python3.7.8搭建深度学习环境_第14张图片

安装完成。
Windows10+Python3.7.8搭建深度学习环境_第15张图片

然后根据安装目录,添加一些环境变量(红圈的5个)。
Windows10+Python3.7.8搭建深度学习环境_第16张图片

在命令提示符里测试一下CUDA安装成功与否,输入:

nvcc -V

Windows10+Python3.7.8搭建深度学习环境_第17张图片
出这个界面应该就是成功了。

安装cuDNN

接着是cuDNN:先进入cuDNN的网址。在这点击Download cuDNN后,需要注册个英伟达账号,填写问卷。
Windows10+Python3.7.8搭建深度学习环境_第18张图片
注册完成后登录账号,并在浏览器里输入https://developer.nvidia.com/rdp/cudnn-archive,去找我们需要的版本。Windows10+Python3.7.8搭建深度学习环境_第19张图片

下载完成后解压得到这几个文件。
Windows10+Python3.7.8搭建深度学习环境_第20张图片
全部覆盖到cuda的文件夹里,对于我来说,覆盖的文件夹如下图所示。
Windows10+Python3.7.8搭建深度学习环境_第21张图片

安装TensorFlow-gpu

我安装的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

Windows10+Python3.7.8搭建深度学习环境_第22张图片
应该是没问题的。

安装PyTorch

我们安装的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,代码如图中所示:
Windows10+Python3.7.8搭建深度学习环境_第23张图片
然而这样的安装方式会跳过了安装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的环境就算搭建好了。

简单小测试

测试一下代码,安装成功。
Windows10+Python3.7.8搭建深度学习环境_第24张图片
刚搭好环境也不会搭神经网络,就自己试着写个单位矩阵乘以标量的程序看下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的环境搭建应该是没有问题的。

结束语

再次感谢参考资料中博客的各位大佬。如果本博客内容存在任何问题欢迎在评论区指正,谢谢大家。

你可能感兴趣的:(软件使用与环境配置,pytorch,深度学习,python)