最近尝试caffe环境的配置,同样需要CUDA和cuDNN,所以我再次回顾这篇文章,我真是生气啊,感觉自己写得不清不楚的,路径啥的我都没记录。


目录

  • 1. PyTorch是什么
  • 2. 找到pytorch
  • 3. pytorch环境的搭建
  • 3.1 Anaconda安装
  • 3.2 CUDA和cuDNN安装
  • 3.3 配置torch环境(conda创建环境)
  • 3.4 安装编程环境
  • 3.5 其他
  • 4. 所有版本信息



背景:打算用python来实现yolov3,yolov3的实现方式可以有pytorch、openCV、Darknet、keras等,目前pytorch较为流行。
补充:在后来的学习中需要使用anaconda创建一个python的运行环境,在3.3和3.4节中就有说明。

1. PyTorch是什么

这是一个基于Python的科学计算包,其旨在服务两类场合:

  • 替代numpy发挥GPU潜能
  • 一个提供了高度灵活性和效率的深度学习实验性平台

参考链接:PyTorch深度学习:60分钟入门(Translation)

2. 找到pytorch

在这里推荐一个网站:Awesome Python,它几乎包含了ptyhon需要的所有库,同时也包含库的一个简略说明。在该页面搜索"pytorch",即可跳转pytorchGitHub说明页。
此外还有pytorch的官方网址

3. pytorch环境的搭建

操作系统:Win10

3.1 Anaconda安装

Anaconda是什么?为什么装?怎么装?

  • 是什么

Tensors and Dynamic neural networks in Python with strong GPU acceleration.

  • 是一个集成的Python包以及环境,包含依赖项等,可以用来管理包,安装、运行应用。
    针对不能版本的Python,Anaconda可以帮助管理多个环境,可以提供一个更加快速和简单的方式来运行机器学习的相关代码。
  • 为什么装
    Pytorch在Github上的官方推荐。

If you are installing from source, you will need Python 3.6.2 or later and a C++14 compiler. Also, we highly recommend installing an Anaconda environment. You will get a high-quality BLAS library (MKL) and you get controlled dependency versions regardless of your Linux distro.

此外还可以在网上找到同时安装Anaconda2和Anaconda3的。Anaconda2对应的是python2,Anaconda3对应的是python3版本。

查看Anaconda版本信息
在命令提示符,输入:
conda -V 安装成功将提示版本号信息。
Conda是什么

Conda是一个开源的 ,跨平台的,包管理器和环境管理系统。它是为Python程序创建的,但它可以为任何语言(例如R语言)进行包管理和安装。Conda包和环境管理器包含在Anaconda,Miniconda,和Anaconda存储库的所有版本中。

安装教程
1.深度学习环境配置2——windows下的torch=1.2.0环境配置(Bubbliiiing) 2.有幸遇见-b站最全最简洁易学的深度学习环境配置教程(有幸被看的上上)

3.2 CUDA和cuDNN安装

  • 是什么

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。

  • 一个运算平台,促使GPU加速。
    关于cuDNN,在其官网上写着

The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers.

  • 深度神经网络库 (cuDNN) 是一个 GPU 加速的深度神经网络基元库。 cuDNN 可大幅度优化标准例程(例如前向和后向卷积、池化、归一化和激活层)的实施。
    需要CUDA和cuDNN同时促使GPU加速。
  • 为什么装
    官方推荐

If you want to compile with CUDA support, install
NVIDIA CUDA 10.2 or above
NVIDIA cuDNN v7 or above
Compiler compatible with CUDA Note: You could refer to the cuDNN Support Matrix for cuDNN versions with the various supported CUDA, CUDA driver and NVIDIA hardwares

  • 怎么装(详细安装步骤看下方“安装教程”链接)
    1.先下载CUDA。CUDA需要几个G的硬盘空间,如果C盘紧张需要先对C盘进行磁盘清理。
    打开官网选择相应的版本:

    生成应用程序,双击打开,直接运行:

    选择安装位置上我在D盘建了文件夹,其目录为:

    CUDA Development和CUDA Documentation路径选择CUDA1,Samples路径选择CUDA2。
    安装后在C盘这个位置可以找到根目录:
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
  1. 再下载cuDNN。cuDNN的下载挺麻烦的,需要你提前在cuDNN官网进行注册,注意cuDNN与CUDA要相互匹配,官网有相应的引导提示,安装过程可以参考有幸遇见-b站最全最简洁易学的深度学习环境配置教程Anaconda+Pycharm,安装后解压得到该文件:

    将该文件夹中选中的三个文件夹复制到D:\CUDA_manager\CUDA10.2\CUDA1下(即刚才CUDA的安装下:

查看CUDA版本信息
在命令提示符,输入

nvcc --version

安装成功将提示版本号信息。

查看cuDNN版本信息

打开安装CUDA的文件夹,在include/cudnn_version.h就提示了版本信息:

pytorch github项目测试 pytorch从零搭建目标检测_python

安装教程
1.深度学习环境配置2——windows下的torch=1.2.0环境配置(Bubbliiiing) 2.有幸遇见-b站最全最简洁易学的深度学习环境配置教程(有幸被看的上上) 参考链接:详解Anaconda + 如何在Anaconda上更换python版本

3.3 配置torch环境(conda创建环境)

利用anaconda搭建一个python的环境,在命令提示符依次输入一下代码:
activate //进入base环境
conda create -n py37 python=3.7 //环境命名为py37,其中python版本指定为了3.7(-n是name的缩写)
conda activate py37 //激活py37环境(在上一步结束后,会有该条命令的提示)

python # 在该环境下查看python版本
exit()# 退出python

其他以后可能用到的命令
conda env list //查看所有环境


需要进入py37这个环境下安装pytorch。

进入pytorch官网,点击“install",由于我的CUDA版本正好有,所以选一下就有推荐的安装方式。

pytorch github项目测试 pytorch从零搭建目标检测_pytorch_02


在py37环境下,输入以下代码:

pip3 install torch==1.10.0+cu102 torchvision==0.11.1+cu102 torchaudio===0.10.0+cu102 -f https://download.pytorch.org/whl/cu102/torch_stable.html

其中torchversion是计算机视觉中的辅助模块,如需删除pytorch,则输入下方代码:

pip uninstall torch torchvision torchaudio

查看torch版本信息
在终端py37环境下输入

# py37
python
import torch
print(torch.__version__)
print(torch.cuda.is_available()) # 检查GPU版本是否安装成功,一般GPU版本快于CPU

运行结果:

1.10.0+cu102
True

如果没有错误提示则表示成功安装,并显示版本信息。
其它依赖库的安装
当缺少某个库时:

# py37
pip install 库名

有些代码的实现不仅仅需要一个库,同时需要matplotlib、numpy等,当需要文件较多的时候,Bubbliiiing介绍了一种方法,创建一个文本文件,在环境下安装。该博主在b站也有相应的安装配置视频
在文本文件中输入想要加入的库,保存,在命令提示符py37环境下输入相应的代码:

# py37
pip install -r 创建文本文件的位置

当全部安装完成后重启电脑

3.4 安装编程环境

编程环境因人而异,有幸被看的上上使用的是pycharm,Bubbliiiing使用的是VSCode,两款软件我都进行了尝试,分别介绍这两个软件的配置。

  1. VSCode
    打开Anaconda,注意要把环境切换为自己创建的环境名字,我这里创建的是py37

    需要在这个环境下运行VSCode。
    打开VSCode后,左下角环境也要对应。
  2. Pycharm
    打开pycharm后,点击右下角“添加解释器”

    这里需要选择的是Conda Environment,因为之前是利用conda创建的环境;
    接下来选择Existing environement;
    最后解释器是环境文件夹下python.exe可执行文件,Conda executable不进行修改。

3.5 其他

  1. 环境修改
    上文我用anaconda创建了一个叫做“py37”的环境,而这个环境是我测试用的,我想创建一个名字更加直观环境基于yolo模型的目标检测,如“yolo_pytorch"。
    我想到的方法有:1) 重命名“py37”;2)对“py37”这个进行拷贝,拷贝出来的环境更名,删除原来的环境;3)从头开始创建一个新环境。
    通过查找发现,conda并没有重命名的指令,因此选用第二条思路,通过拷贝原环境,再将旧环境删除的方式。
    打开命令提示符:
conda info -e #查看当前有哪些环境
conda create -n 新名 --clone 旧名 # 克隆新的环境
conda remove -n 旧名 --all # 删除旧环境
conda info -e # 查看是否转换成功
  1. 参考链接:conda 创建/删除/重命名 环境conda 查看已有环境
  2. Python版本修改
    在当前conda env(conda环境)内修改Python的版本(升级或者降级)

4. 所有版本信息

名称

版本信息

Anaconda

4.10.3

CUDA

10.2

cuDNN

8.3.0

pytorch

1.10.0+cu102

vscode

1.62.1

注意

CUDA、cuDNN和pytorch三种的版本信息是要相互匹配的,检查CUDA与torch是否匹配的方法见博文Pytorch错误:Torch not compiled with CUDA enabled

卸载第三方库的方法见博文Anaconda安装、查看、卸载第三方库