0.需求
做实验阶段经常需要复现代码,要从github上把代码克隆下来,然后按照里头的readme文件配置环境【主要是pytorch】。电脑本身已经装好了Anaconda和开发工具,这个过程其实很简单,只是一些语句,但具体细节经常会忘,每次又要反复查,网上查着又都是从0开始的,且很多为比较旧的教程,因此写个文章记录一下配置环境的一些过程,方便之后做实验搭环境。
1.搭环境之前
- 电脑支持cuda并且已经安装过cuda以及cudnn等
- 电脑已经安装并配置好anaconda环境
阅读github上的readme部分的环境需求,然后一条一条开装
2.CUDA = 11.1
不包在conda环境里,本身也不是通过conda安装的。如果之前用GPU跑过深度学习的代码,那就是已经装过了,可以在终端用以下指令查一下版本,CUDA版本向下兼容。
nvcc -V
我往常一直是使用nvidia-smi查的版本,后来才发现两个版本查出来不一致,nvidia-smi的会比较高一些,具体原因这篇文章里有写,结论是应当以上面的nvcc为准。但是目前还没有踩过这类的坑,代码一直也都能跑。
【CUDA】nvcc和nvidia-smi显示的版本不一致? - 简书 (jianshu.com)
3.Python = 3.9
先创一个conda环境,并安装相应版本的python。env_name是自定义的环境名字
conda create -n env_name python=3.9
此时创建好了一个conda环境,同时环境里也安装好了3.9版本的python。查看环境列表确认conda环境是否安装创建成功:
conda env list
并激活该conda环境:
conda activate env_name
【一些报错】UnavailableInvalidChannel: The channel is not accessible or is invalid.
之前配置的镜像源无效了。有类似问题可以考虑一下换镜像源,比如这篇文章的:conda Collecting package metadata (repodata.json)卡住或 failed问题_collecting package metadata (repodata.json):-CSDN博客
4.Pytorch = 1.8.0
需要找到与CUDA版本(这里是11.1)兼容的PyTorch版本,访问官方网址Previous PyTorch Versions | PyTorch。找到1.8.0版本,对应到CUDA版本,获取安装命令:
如果要使用pip安装, 该网页上也有相应指令,往下划就能看到
conda和pip二选一, 看具体情况。
安装一般很慢,因为从官网进行下载的,而且容易超时报错。清华源好像也没有相关版本,推的都是cpu版本。所以如果实在没办法可以通过手动下载whl文件,再手动安装,在这里download.pytorch.org/whl/torch_stable.html找到指定版本下载,安装过程可以参考这篇文章【2024最新】下载cuda版本的pytorch库时清华源不可用的问题(已解决)_pytorch_yyg_ds-西安城市开发者社区 (csdn.net)
【一些服务器连接tips】如果宁愿花时间不想花精力,在确保网络通常的情况下,可以就去吃顿饭溜达一下,回来就装好了。我是通过ssh连接的服务器,在服务器上装,经常断连,随之进程也会被挂起,安装被中断了,重新连接后还得重新安装。
这种情况可以使用screen会话。screen会话会在后台运行,即使断开了 SSH 连接,会话中的进程仍然会继续运行。重新连接时,也可以重新连接到会话。具体操作可以看以下这篇文章:
screen简单使用-CSDN博客
安装完毕后,确认一下环境内的已安装包里是否包含pytorch这些。包含这三个库,就没问题了。
conda list
我是用pip安装的,在检查list的时候发现装完pytorch之后,pip又自己默认装了2.0.2版本的numpy。在某些情况下,如果环境中已经通过pip安装了某个包,conda可能会检测到它并将其添加到列表中,但不会尝试替换它。因为后面显式要安装numpy1.21.2,于是将这个pip装的numpy卸载。
pip uninstall numpy
虽然pip提供了灵活的安装方式,但它可能不会解决所有依赖性问题,尤其是在涉及复杂环境和多个库时。所以推荐在可能的情况下优先使用conda来安装和管理包,以减少版本冲突和环境问题。
5.sklearn = 1.0.1、numpy = 1.21.2
这一类特定版本的普通库,语法都差不多。
conda install scikit-learn=1.0.1
conda install numpy=1.21.2
6.核对、测试
conda list检查一下:
主要还是pytorch部分,因此进入python运行一下:
import torch
torch.cuda.is_available()
返回true,则安装成功