镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站
前言
由于服务器已安装Anaconda,包含的Python版本为3.8,为使用3.6版本同时避免和其他人互相影响,我选择创建虚拟环境,并在其中安装所需的Pytorch1.0.1、opencv、numpy(Anaconda已自带)、pillow等。
一、创建Python3.6环境
1 创建环境
使用如下命令,其中name为自定义的虚拟环境名。
conda create -n name python=3.6
输入y,继续创建。
2 激活环境
使用如下命令激活和退出环境。
conda activate name #激活环境
conda deactivate #退出环境
二、安装Pytorch1.0.1
1 查询服务器CUDA和CUDNN版本
在安装前,我们需要先确定服务器的CUDA和CUDNN版本,从而选择适配的Pytorch。首先使用如下两个命令获取CUDA版本:
nvcc -V #获取运行API版本
nvidia-smi #获取驱动API版本
其中运行API版本为一般执行代码时对应版本,选择Pytorch时与该API对应,驱动API可以理解为最高能够使用的版本。
我这里的运行API版本为11.1,因此在选择时需要选择同样或低于11.1版本的Pytorch,具体根据所需Pytorch决定。
下面通过NVIDIA官网(cuDNN Archive | NVIDIA Developer)查询对应CUDNN版本:
例如,CUDA11.5需要CUDNN8.3.0。
2 添加阿里云源通道
为了使下载速度更快,这里先添加阿里云源通道:
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
3 安装Pytorch
安装前记得要先激活自己的虚拟环境。安装命令如下:
conda install pytorch==1.0.1 torchvision==0.2.2 cudatoolkit=10.0 cudnn=7.6.5 -c pytorch
博主这里需要的Pytorch是1.0.1版本,所以在官网(Start Locally | PyTorch)上找了旧版本Pytorch对应的命令(Previous PyTorch Versions | PyTorch),由于里面没有CUDA11.1所以选择了10.0,再自己添加的cudnn=7.6.5,该对应版本号就是在上文NIVDIA官网上找到的。
安装过程中同样需要输入y确认继续进行。
4 确认安装成功
输入python查看虚拟环境中的Python版本:
导入Pytorch并查看版本:
import torch
print(torch.__version__)
查看GPU是否可用:
print(torch.cuda.is_available())
三、安装opencv、numpy、pillow
1 opencv
在这里我使用的是pip安装,因为使用conda安装出错,或者安装成功后导入时提示没有cv2模块,具体原因不清楚,上网搜索后按照其他方法也未能解决,大家若有经验可评论分享一下。
pip install opencv-python
该命令会安装最新版opencv,需要旧版本可以再上网搜索具体方式。安装后输入python进入Python环境,导入opencv验证是否成功:
import cv2
cv2.__version__
若未提示没有cv2模块则成功。
2 numpy
由于Anaconda自带了numpy,所以我这里没有下载,若有需要大家可以再搜索具体方法。
import numpy
若导入未报错则成功。
3 pillow
同样在创建虚拟环境时,pillow已经被安装,若需要则按照下面命令即可:
pip install pillow
import PIL #验证安装
若未报错则成功安装。
注:以上安装命令均是在虚拟环境中执行,而验证安装是否成功需要进入Python中测试。
总结
以上是在Ubuntu20.04服务器上已安装Anaconda的情况下,创建Python3.6虚拟环境、安装Pytorch1.0.1并安装opencv、numpy、pillow等的具体步骤,都已实际测试成功。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。