2023年11月29日发(作者:)

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

1SSH服务

linux系统:ssh user@address

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

⼆、打开cmd,就可以使⽤ ssh user@address

遇到的问题: 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_

配置环境

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

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

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

官⽹给出1.2.0的安装⽅法:

# CUDA 10.0

pip install torch==1.2.0 torchvision==0.4.0

# CUDA 9.2

# CPU only

检测cudacudnn是否有⽤

import torch

print(torch.__version__)

print()

print(n())

_available()

# cuda是否可⽤;

_count()

# 返回gpu数量;

_device_name(0)

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

t_device()

# 返回当前设备索引

上传⽂件夹(⽬录):

scp -P 22 -r filework user@119.28.40.194:home/user/

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

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

五、运⾏

问题⼀:运⾏pytorch⽂件出现ModuleNotFoundError: No module named 'XX'

解决⽅法:

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

pip install XXX

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

解决⽅法:

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

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

解决⽅法:

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