pycharm远程连接服务器跑实验详细操作

pycharm远程连接服务器跑实验详细操作

跑实验有一天突然电脑卡住了,我吓了一跳,想起之前学长说的不要用自己笔记本电脑跑实验容易把电脑跑坏!!!游戏本虽然能跑,但是很慢不说显卡也挺脆的,跑坏了很麻烦,还是用远程服务器跑吧!!!自己的电脑就留着调试debug用!!!

打开pycharm

由于pycharm太笨重了,所以打开时选择当前要运行的项目即可,不要打开包含多个项目的大文件夹!!!
!!!注意连接远程服务器前,最好把这个项目拷贝一个副本,命名为project_remote,数据集和预处理后的训练集测试集都不要放在里面!数据集用FileZilla上传到数据盘更好更快点!!!

租借远程服务器

从autodl算力平台官网上租借一个服务器,选择基础镜像,选择需要的torch和cuda版本,这个是我租的详细介绍:(1.98一小时还挺贵的)

SSH连接

pycharm打开本地项目project_remote后,先上传代码的话选择无卡模式开机,节约钱!!!然后打开pycharm的SSH连接,输入用户/主机/端口/密码,并创建环境,选择同步到远程主机的文件夹目录





点击创建新环境要等一会

这样就创建好了新的环境!pycharm会更新又需要等一会

浏览远程主机

点击:工具→部署→浏览远程主机

这里可以看到远程主机同步的文件夹,我发现没有数据集,这个文件夹500MB同步也挺慢的!!!

FileZilla上传数据到数据盘

根据autoDL官网的帮助文档,下载并安装FileZilla

点击连接,允许就可以连上远程主机了

这里选择root/autodl-tmp 这个是数据盘,可以新建一个data文件夹存放自己的数据,把数据放在这个数据盘里面更好!!!这样不容易崩系统盘!!!

数据存放路径:/root/autodl-tmp/data

然后从本地选择想要上传的数据集后,右键上传到远程服务器即可

白天上传速度挺慢的,最好晚上上传!!!

跑实验

因为刚刚上传数据是无卡模式开机,所以先要关机再重新开机!!!

关机后重新开机没有空闲GPU的话,可以克隆实例,选择另一台设备:

克隆还是挺快的,主机/端口号会变化

所以还是同样的SSH连接重复操作一遍,这里可以选择现有的环境,但是文件夹也需要同步(可以选择之前已经同步过的文件夹,实例克隆之后已经复制过去了 ):

这里可以查看新的连接是否成功:

修改代码后记得上传代码文件

打开远程终端(建议在终端运行代码!)

一定要选择正确的端口号和主机!!!

以下都在远程终端运行:

python 复制代码
# 一键安装依赖包
pip install -r requirements.txt
python 复制代码
# 读取数据盘中的数据集
data = pd.read_csv(
    '/root/autodl-tmp/data/ASSISTments/anonymized_full_release_competition_dataset.csv')
python 复制代码
# 运行数据预处理文件
cd /tmp/MyKT_remote0806/preprocess
python prepare_Assist2017.py

关于路径

当前的执行命令是:

python 复制代码
cd /tmp/MyKT_remote0806
python run/MyKT/run_Assist2017.py

这相当于从 MyKT_remote0806/ 目录启动脚本,而此时 Python 默认的 sys.path[0] 是 run/MyKT/,不是项目根目录 /tmp/MyKT_remote0806/

方法 1:在run_Assist2017.py脚本中动态添加项目根目录到 sys.path(推荐)

python 复制代码
import sys
import os
# 添加项目根目录(如 /tmp/MyKT_remote0806)
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../')))

方法 2:使用 -m 参数从项目根目录运行(更专业)(远程服务器跑脚本推荐这个)

从项目根目录 /tmp/MyKT_remote0806/ 运行脚本,并使用模块方式:

python 复制代码
cd /tmp/MyKT_remote0806
python -m run.MyKT.run_Assist2017

⚠️ 注意事项:

必须确保 models/、run/ 等目录中有 __ init __.py 文件(可以是空文件),否则不会被识别为模块包

这里我使用的方法2!!!

注意 run_Assist2017 脚本中路径都会变成根目录 MyKT_remote0806 ,所有读取文件的路径也需要对应上从根目录开始!!!

现在就开始训练了:

监控远程服务器的GPU

可以打开jupyterlab

在终端输入:

python 复制代码
nvidia-smi -l 5

就可以看到GPU的使用情况了,确实比自己的笔记本跑的快!!!