【实验记录】ssh远程使用Linux服务器跑pytorch程序过程

1、SSH服务

linux系统ssh user@address

win10系统:一、安装OpenSSH:OpenSSH(注意此步骤只保留客户端,其他正常安装)

【实验记录】ssh远程使用Linux服务器跑pytorch程序过程_第1张图片

二、打开cmd,就可以使用 ssh user@address

【实验记录】ssh远程使用Linux服务器跑pytorch程序过程_第2张图片

遇到的问题 kex_exchange_identification: Connection closed by remote host

网络上的解决方法:

原因是客户端连接数过多。缺省情况下,SSH终端连接数最大为10个。在这种情况下,需要改SSH的配置文件:

(PS:从第10个连接开始,以30%的概率(递增)拒绝新的连接,指导连接数达到100

1、修改/etc/ssh/sshd_config中#MaxStartups 10,将其改为MaxStartups 100,或改为合适值;

2、重启SSH服务,systemctl  restart  sshd。

        以上方法对我无效,使用who查看时仅有2个用户在线。最终,其中一个用户切换成普通用户后就登录成功,但仍有登录失败概率,怀疑是网络问题。

2、安装anaconda

Bash安装

bash Anaconda3-5.2.0-Linux-x86_64.sh

配置环境

Vim ~/.bashrc

打开文件后,在最后一行加入:

export PATH=/home/username/anaconda3/bin:$PATH

按Esc键 并:wq保存退出

source ~/.bashrc

遇到的问题:

此处出现手滑输错成 export PATH=/home/username/anaconda3/bin:$path(path写成小写)

造成结果:出现所有命令失效的情况。

报错:命令'vi'可在'usr/bin/vi/处找到 由于/usr/bin不在PATH环境变量中故无法找到该命令。

解决方法:这时候可以临时设置环境变量:

export PATH="$PATH:/usr/bin" 

出现 < 后输入 vim 退出,(相当于重新写了个临时命令)

即可以临时使用 vi ~/.bashrc 直接重复配置环境的输入修正错误。

检测是否成功 :输入conda

【实验记录】ssh远程使用Linux服务器跑pytorch程序过程_第3张图片

3、安装pytorch

创建一个虚拟环境

conda create -n torch python=3.8

——torch是环境名,可自命名;python=3.8对应你现有的python版本,如果你想在虚拟环境中使用其他版本的python也OK,安装会更慢。

激活虚拟环境

source activate torch

——已激活(虚拟环境):

退回到base

deactivate torch

——正常环境:

查看python版本

python --version

——检测到:anaconda自带的是python3.8

检测cuda版本

cat /usr/local/cuda/version.txt

——检测结果:CUDA10.2.89

安装pytorch

conda install pytorch=1.2.0 torchvision==0.4.0

——此处由于使用的T40C 老旧显卡,只能使用pytorch1.2.0

遇到的问题:此处显示python=3.8不适用torchvision==0.4.0

【实验记录】ssh远程使用Linux服务器跑pytorch程序过程_第4张图片

解决方法:重新创建虚拟环境,将python改为3.6,激活后不退出,直接进行安装。

官网给出1.2.0的安装方法:

# CUDA 10.0

pip install torch==1.2.0 torchvision==0.4.0

# CUDA 9.2

pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html

# CPU only

pip install torch==1.2.0+cpu torchvision==0.4.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

检测cuda和cudnn是否有用

import torch

print(torch.__version__)



print(torch.version.cuda)

print(torch.backends.cudnn.version())



torch.cuda.is_available()

# cuda是否可用;



torch.cuda.device_count()

# 返回gpu数量;



torch.cuda.get_device_name(0)

# 返回gpu名字,设备索引默认从0开始;



torch.cuda.current_device()

# 返回当前设备索引

——检测结果如下:

【实验记录】ssh远程使用Linux服务器跑pytorch程序过程_第5张图片

四、上传文件

使用scp

(¥ SCP命令方法传送门:Linux scp命令 | 菜鸟教程)

上传文件:

scp -P 22 file [email protected]:home/user/ 

(-P端口号 当前目录下的文件名 用户@域名:目录)

上传文件夹(目录):

scp -P 22 -r filework  [email protected]:home/user/ 

上传完毕后,激活虚拟环境

PS:可以通过ls查看一下文件是否都传成功。

五、运行

问题一:运行pytorch文件出现ModuleNotFoundError: No module named 'XX'。

解决方法:

缺失相对应的库的问题,安装相应库即可。

pip install XXX

问题二:另外,如果安装超时报错,因为源不稳定造成的。

【实验记录】ssh远程使用Linux服务器跑pytorch程序过程_第6张图片

解决方法:

选用国内源(实例为douban,清华源也推荐使用)

pip install 插件名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

问题三:AttributeError: 'NoneType' object has no attribute 'XXX’

解决方法:

文件上传过来后,路径没有改,所以程序读取不到文件。修改路径即可。

补充:退出ssh,程序继续执行的方法

screen命令

进入:输入screen,并按空格或回车

退出:Ctrl+A+D

查看会话:screen -ls

重新进入会话:screen -r 会话名字

杀死进程:screen -S 会话名字 -X quit

以上,就是通过SSH在linux服务器上远程运行pytorch程序的全过程。

你可能感兴趣的:(实验记录,python,ssh,linux,pytorch)