一些牢骚:深度学习没怎么学习几次,搭建环境已经把我搞秃了哈哈哈。
之前在网上找到的搭建环境的步骤,我没有root权限,很多操作都不行(比如运行.run文件,cuda
和cudnn的安装和修改也需要root权限 ,下载的时候也是各种不行,后面发现是路径问题..)对linux不熟悉导致光是安装就耗费了我好多好多天时间...
好不容易环境搭建好了 ,服务器又经常因为高温掉了 ,实在是不好多次麻烦管理员重启...
于是请管理员给我换了个服务器,梅开三度,再次安装.....
以下主要针对无sudo权限的情况...
目录
pytorch安装(无root权限,无法安装cuda的情况)
anaconda安装(无root权限也可)
没有root权限,先弄cuda和cudnn会出问题。打算用虚拟环境。所以先安装anaconda。
- 1、安装anaconda前需要查看自己的Ubuntu版本号..参照这篇帖子:
- ubuntu:查看ubuntu系统的版本信息_coldice0521的博客-CSDN博客_查看ubuntu版本号
- 2、在官网:Anaconda | Anaconda Distribution 中找到符合自己版本号的anaconda。
- 官网找到linux系统的,右键复制下载链接。
- 在终端用cd+path进入想安装的位置;然后用wget+此下载链接下载 。
- 下载成功后,刷新服务器页面。path中有.sh文件出现。
- 然后用 bash 命令(不需要root权限)
- enter后再次向我们确认安装位置。因为一开始用cd进入了想要的路径,所以enter即可 。
- 安装好后,出现anaconda的文件夹。
- 但在 终端直接输入conda 命令 没有反应。如下
- 所以接下来需要配置环境变量!这一步的目的就是,在终端中输入conda时,能有所反应。
- 运用bashrc文件添加环境变量。这一步,有用 vim命令,也可用gedit命令。都可以,它们的区别我去搜了下:
- Linux下gedit命令及vim的基本操作_S4061222的博客-CSDN博客_gedit命令
- 我用的是gedit编辑(测试没有root权限也可)
-
gedit ~/.bashrc
输入这行命令后,会出现一个文本框,在最后 一段加上anaconda3的bin文件路径。(代码中的***需要替换为你的路径)。
-
#added by Anaconda3 installer export PATH="/***/anaconda3/bin:$PATH" #***需要替换为你的路径
点击文本框的save!!!然后在终端运行以下命令。每次修改.bashrc文件后,需要这一行命令加载修改后的设置。可以使环境变量生效。
-
source ~/.bashrc
然后在终端输入conda的一些命令也可以生效了。比如查看conda环境的安装的包;
conda list
能在终端运行conda相关命令,则说明anaconda环境变量配置成功~~
拓展一下 ,和conda相关的一些指令如下(和安装没什么必要关系):
Conda常用命令整理_CharlotteMen的博客-CSDN博客_conda命令
pytorch安装(无root权限,无法安装cuda的情况)
以下灰色斜体的内容与安装正文无关,是踩坑记录:之前安装的时候踩了一个坑,自以为cuda和cudnn已经安装好了 ,然后直接 conda install torchvision的时候,安装是成功了,但是训练速度非常慢,后面发现安装成cpu版本了。后面检查发现cuda和cudnn的版本也对不上号。这里踩过的坑在下面这篇帖子:
解决torch.cuda.is_available()一直返回False的玄学方法之一_凛雨时冽的博客-CSDN博客_cuda.isavailable(后面找到原因是环境的cuda是root用户的,我自己安装的cudatoolkit和cuda版本对应不上,cudnn就没有安装成功,就没有用到GPU进行训练。)cuda和cudnn安装 好后,一定要用torch.cuda.is_available()检验一下是否成功了(代码详见上面那篇帖子)。否则辛辛苦苦安装很久,可能最后还是用到的cpu进行训练。
首先是cuda的问题,conda安装的cudatoolkit和nvidia安装的cuda的版本问题,我反正是晕的。不知道要不要单独去安装cuda~下面这篇文章解释清楚了。
显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - 知乎因为之前我装anaconda时,没有单独安装cuda,就可以运行。之后安装了一次飞桨的框架(paddlepaddle),我以为就不用安装cuda了...结果就把不行!!用飞桨的框架不能用基于conda安装的cuda....NVIDIA的cuda和此cuda是不一样的东西。详细看下面这篇文章。(其中涉及到runtime API和driver API的问题)显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - 知乎
pytorch的具体安装参考下面第一篇帖子”1”(直接按照这篇安装会有很多问题,以下梳理问题和解决方案 )
1*:
Anaconda环境安装GPU版本Pytorch_moyemoji的博客-CSDN博客_conda安装gpu版pytorch
问题梳理:
1、这篇帖子anaconda是基于root权限的,没有root权限请看我上面的anaconda安装的部分
2、其中创建环境的部分有点问题,参考第2篇(2*)。
Anaconda创建环境、删除环境、激活环境、退出环境_DayDay_Lee的博客-CSDN博客_删除环境
无sudo权限运行cuda
3、上面提到的1*这篇文章没有指出cuda安装的问题。因为输入以下命令时,终端未显示cuda版本;
#以下命令得到runtim API版本
nvcc -V
#以下命令得到driver API版本
nvidia-smi
我以为没有安装cuda,因为没有sudo权限,又无法安装cuda...结果在/usr/local/文件夹中发现已经安装了;
既然安装了cuda后,但终端不显示,就是配置环境变量的问题:
配置环境变量,在终端输入:
cd /home/
gedit ~/.bashrc
打开文本框,Ctrl+F搜索"cuda",如果没有搜到,加入如下内容:(或者改变cuda的路径)
##cuda版本见你自己电脑的版本型号,我的是cuda-11.1
export CUDA_HOME=/usr/local/cuda-11.1
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.1/bin:$PATH
修改好后先保存!!再在终端输入以下代码开始编译~然后再输入nvcc -V(大写)得到驱动版本。
source ~/.bashrc
#以下命令得到runtim API版本
nvcc -V
#以下命令得到driver API版本
nvidia-smi
得到nvcc -V的版本型号后,就可以选择cudatoolkit的型号了~见如下(1*第一篇文章),就可以用conda命令进行安装了!下载<= nvcc -V的cuda版本型号的cudatoolkit,因为cudatoolkit的版本是向下兼容的~(比如运行cuda的版本是11.1,可以下载比11.1更低版本的cudatoolkit比如10.2)
4、去pytorch官网查看 运行版的cuda版本对应的pytorch、torchvision的版本进行下载
进入官网,地址:Start Locally | PyTorch
(根据nvcc -V得到的版本号来,不是nvidia-smi的版本 )
比较慢,可以用清华镜像源;
进入官网,发现只有10.2和11.3,比如我是cuda-11.1,,那点击 图中标蓝色的部分,下载其他版本;
ctrl+F,搜索cuda 11.1;找到7项;对应不同的torch版本;有pip方式;也有conda方式;
两种都可;
pip方式对应torch
conda对应pytorch
提醒一下,有的版本的torchvision需要注意看看自己anaconda3中的python版本!python版本和pytorch或者torch的版本有对应关系!(虽然一般不会有问题)
python版本不能太高!比如0.8.1的对应的torchvision版本就只能对应python<=3.8版本的。如果是python3.9版本的,需要重新安装python.
截取一部分,详情见这个:https://github.com/pytorch/vision
如果python版本太高,就需要重新安装python环境;
解决方式很简单。进入我一开始创建的虚拟环境(输入指令 conda activate ***(创建的虚拟环境的名字 ))
然后直接
conda install python=3.8
如下图:前面的(pytorch_env)是我取的虚拟环境的名字;
之后再次输入python,版本就降下来来了
版本没问题的话 ,用官网给的命令安装cudatookit、pytorch、torchvision;
官网给的是conda-forge这个库 ,这样可能很慢 。用清华镜像源替代,速度快到飞起。
终端输入命令编辑:
gedit ~/.condarc
打开
然后把用清华镜像源中的以下内容把原来的 覆盖 掉!
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
覆盖之后的样子如下,点击右上角 save
这里贴一下清华镜像源的网站,有兴趣可以点进去了解一下
anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
参考资料:
https://www.csdn.net/tags/Mtzakg2sNTYxODYtYmxvZwO0O0OO0O0O.html
踩坑记录:一开始,我直接把上面那串代码的conda-forge形式改为
这样不行,显示的结果是The channel is not accessible or is invalid.
像上文所述的编辑condarc即可解决此问题。
测试安装是否成功
安装好后,在终端输入python进入python环境:
python
再在虚拟环境下的终端输入以下代码:
import torch
torch.cuda.is_available()
返回True,即可以用GPU进行训练。
效果如下图:
(一开始就是从这里是False发现自己安装的居然是cpu版本的,之所以安装的是cpu,把cuda的运行版本搞成了驱动版本 ,所以cudatoolkit的版本安装高了,就出问题了。这一条命令用来检验很重要!)
开始发牢骚:总算安装好了 。GPU的速度实在是太快了....飞一般的感觉...搞了这么久,值了!!感谢我的老师给我换服务器!!!
补充:后续在新的linux服务器安装,出现新的一些问题
时隔3年,我在新的服务器装,torch.cuda.is_available()一直返回False
之前都返回True....现在的新的服务器(版本更高),却返回False
原因是,从官方源下载的时候,conda install pytorch给我下载cpu版本了!
详细参考这篇:
conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]_为什么conda安装pytorch版本不对-CSDN博客
真的是,简而言之:下载的时候,conda自动下载了cpu版本。要解决这个问题,需要保证下载的网站(官方源or清华源)提供了,需要下载的版本。
中途安装着:说磁盘空间不够了:用以下命令查看usr1文件夹里的大小...(du -h --max-depth=2 /home
)
du -h --max-depth=1 /home/usr1
##du -h --max-depth=2 /home #会显示 /home 下两级子目录的大小。
清除了一些文件后,查询可知,再安装出现了问题:
- 有时候,Anaconda 的缓存可能会导致问题。可以尝试清理缓存并重新安装包:
复制
conda clean --all
这将清理 Anaconda 的缓存,包括下载的包文件和临时文件。
然后,再安装:
(确保了清华源有pytorch torchvision torchaudio cudatoolkit对应的版本)
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda install cudatoolkit=11.8 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 cudatoolkit=11.8 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/