背景:要用GPU跑代码,但是贫穷的我没有显卡,找老师借到了搭载GPU的服务器。
但是,这个Linux服务器需要自己配置环境(我的理解是,老师给了我一个账号,那么就相当于Linux的一个用户,独立的用户需要自己的环境,老师不用这种共用的机器,那就需要我自己配置了)
实验环境:服务器为Ubuntu18.04,显卡据说为NVIDIA3090(因为我没root权限,没法查看到底是不是);本地环境为开局一个Dell轻薄本。
你需要有个tz,等这篇文章结束你就会有一个MobaXterm_Personal,一个搭载了conda的有pytorch库的服务器。神奇吧。跟着我踩坑吧~
耗费时间:##
有很多连接远程服务器的软件,cmd也行,xshell也行,当然,本文中这个MobaXterm_Personal(Personal指的是个人版)也行。
这里有详细的教程,很好用。
https://zhuanlan.zhihu.com/p/61013117
耗费时间:####
这个对我来说,难点在于,理解anaconda到底是什么,以及老师给的指示:‘注意环境隔离’。
我不理解,但我尽力去理解……
我想:一个实验室共用这一个账号,这个用户账号里可能会需要配很多python的环境,这个时候就需要环境的隔离了,结合学长的指点,要装anaconda,这样就可以隔离环境了,我搜了下anaconda的功能、用法等一系列问题,确定了我的理解。
这篇文章说的很详细:https://zhuanlan.zhihu.com/p/348120084
以下是一些常用命令总结:
conda create -n py32 python=3.7.4 # 创建环境
conda activate + 环境名 #切换环境/激活环境
conda deactivate # 退出环境
conda remove -n 环境名 --all #删除环境
# 在我的环境下安装某个包
conda install +包名
# 安装特定版本的包,例如:
conda install pytorch==1.0.1
# 更新conda到最新版本
conda update -n base conda
conda -V # 查看conda版本,很神奇的是用bash安装的居然不是最新版本
耗费时间:############
从官网看看你要下载啥版本的,根据这个你复制一下官网的命令,like this:(注意pytorch和cuda匹配)
输入到服务器命令行。
然后你发现不行……取经的路上,怎么能少得了重重阻隔呢?配置环境怎么会让你顺顺利利呢?如果你是这么顺利就搞定的话,出门左转,非洲人的博客不欢迎你……
首先,服务器没tz的话你要换个源,换源方法:
#### 方法一:在命令行直接输入
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
-----------------------------
源的种类:
清华源:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
中科大源:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
# 说实话,此处,中科大的源比清华源好用,不知道原理是啥
#### 方法二:编辑文件,写进里面
vim ~/.condarc
# 添加下方图片的内容
换了源你也不一定下载得了,我遇到的第一个错误就是:
Solving environment: failed with initial frozen solve.
解决办法来源如链接,具体如下:
conda update -n base conda # 更新conda到最新版本
conda -V # 检查一下是不是最新版本
conda update -n base conda # 不是的话就再更新一次
然后就能正常下载了
你会遇到这样的情况(特别慢,慢到你觉得没换源):
再次,你要耐得住寂寞……
这里耗费好多时间,一个具体的数字,以下大概就是4.5小时的成果:
它的下面就是一个令人牙疼的结果:
我等了4.5小时,你给我看这个?!还是我的闹钟把我吵醒了我看到这个,血压一下子上来了……
但是,天无绝羊之路!
以下这几句话好像暗示了个啥玩意儿:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
我将这个链接复制到浏览器https://conda.anaconda.org/pytorch/linux-64/pytorch-1.0.1-py3.7_cuda10.0.130_cudnn7.4.2_2.tar.bz2
,打开,然后!奇迹发生了!
我!下载到了!
https://conda.anaconda.org/pytorch/linux-64/
这个页面是一堆包!
剩下的我看到知乎上有这样的做法!点进去,几条命令解决。
conda install --use-local boost-1.59.0-py27_0.tar.bz2
总而言之,这一步的解决方法就是——访问链接
https://conda.anaconda.org/pytorch/linux-64/
,找到对应的安装包,连接着本地电脑的tz,下载到本地,然后上传到服务器特定位置(知乎上的方法传的位置和服务器让我传的不一样,可能因为我们环境变量不一样的原因吧?目前想不通),然后手动安装一下……
测试一下:
# cuda_test.py文件
import torch
from torch import nn
print(torch.cuda.is_available()) # true 查看GPU是否可用
conda install python=3.7.4
接下来要学咋用cuda进行神经网络的训练,可能是下一篇博客……
早知道早点找老师要显卡了……而且要多讨论,还要会讨论。虽然这都是老生常谈的问题了,但是过了四年,我还是在这方面有点欠缺,老是怕麻烦别人,会想一堆有的没的。虽然改掉这一缺点很难,但我还是会不断改进自我的。