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

打开pycharm

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

租借AutoDL远程服务器

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

在这里插入图片描述
注意:
这里租的服务器选择的基础镜像的版本就是最终用到的版本!!!
如果我选择的是PyTorch 2.7.0 / Python 3.12(ubuntu22.04) / CUDA 12.8,那么我运行代码时python的版本也是3.12!!!!而不是我在pycharm里面SSH连接时创建新环境选择的python版本!!!

SSH连接

pycharm打开本地项目project_remote后,先上传代码的话选择无卡模式开机,节约钱!!!然后打开pycharm的SSH连接,输入用户/主机/端口/密码,并创建环境,选择同步到远程主机的文件夹目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击创建新环境要等一会
在这里插入图片描述
这样就创建好了新的环境!pycharm会更新又需要等一会
在这里插入图片描述

浏览远程主机

点击:工具→部署→浏览远程主机
在这里插入图片描述
在这里插入图片描述
这里可以看到远程主机同步的文件夹,我发现没有数据集,这个文件夹500MB同步也挺慢的!!!

FileZilla上传数据到数据盘

在这里插入图片描述

根据autoDL官网的帮助文档,下载并安装FileZilla
在这里插入图片描述
在这里插入图片描述
点击连接,允许就可以连上远程主机了
在这里插入图片描述
这里选择root/autodl-tmp 这个是数据盘,可以新建一个data文件夹存放自己的数据,把数据放在这个数据盘里面更好!!!这样不容易崩系统盘!!!
数据存放路径:/root/autodl-tmp/data

在这里插入图片描述

然后从本地选择想要上传的数据集后,右键上传到远程服务器即可
在这里插入图片描述
白天上传速度挺慢的,最好晚上上传!!!

跑实验

实例克隆

因为刚刚上传数据是无卡模式开机,所以先要关机再重新开机!!!但很多时候关机后就会出现没有空闲的情况,好像包月的话就不会出现,根据我目前情况还是按量计费更适合哈哈!!!

关机后重新开机没有空闲GPU的话,可以克隆实例,选择另一台设备:
在这里插入图片描述
克隆还是挺快的,主机/端口号会变化
所以还是同样的SSH连接重复操作一遍,这里可以选择现有的环境,但是文件夹也需要同步(可以选择之前已经同步过的文件夹,实例克隆之后已经复制过去了):
在这里插入图片描述
如果是要同步一个新的项目文件,需要等一段时间!!!更新python解释器(3min左右),上传文件(408 MB大概16min)

测试连接

这里可以查看新的连接是否成功:
在这里插入图片描述

上传同步文件

需要上传一个新文件夹时:先到部署–配置中新建一个映射,然后再上传
在这里插入图片描述

在这里插入图片描述

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

方法一:(有时候这个方式会失效,还是用的修改之前的代码,可以用方法二)
在这里插入图片描述

方法二:
在这里插入图片描述

打开远程终端

建议在终端运行代码!
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
一定要选择正确的端口号和主机!!!

运行代码

运行前先检查以下地方:

(1)相对路径格式:注意最开始没有斜杠/
(2)读取数据的路径在数据盘中:/root/autodl-tmp/

以下都在远程终端运行:

# 一键安装依赖包
pip install -r requirements.txt
# 运行数据预处理文件
cd /tmp/Myproject-remote
python -m preprocess.prepare_assist2017
# 运行 run 文件
cd /tmp/Myproject-remote
python -m run.MyKT.run

调试代码(连接远程服务器时)

首先在想要调试的地方插入语句:

import pdb;
pdb.set_trace() 

还是一样的方式运行代码,终端会出现 pdb 提示,可以根据自己的需求输入代码进行调试和查看:
在这里插入图片描述

常用的pdb 命令 作用
n 执行下一行
c 继续运行,直到下一个断点
p variable 打印变量的值
q 退出调试

关于路径

当前的执行命令是:

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(推荐)

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/ 运行脚本,并使用模块方式:

cd /tmp/MyKT_remote0806
python -m run.MyKT.run_Assist2017

⚠️ 注意事项:

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

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

现在就开始训练了:
在这里插入图片描述

文件存储

文件存储在实例中的挂载目录为:/root/autodl-fs
如果想要将输出的日志文件存储下来,可以右键点击复制日志文件的绝对路径:
在这里插入图片描述
然后,在终端运行以下命令:

mkdir -p /root/autodl-fs/Log-new && cp 绝对路径放这里 /root/autodl-fs/Log-new/

mkdir -p /root/autodl-fs/Log-new 表示如果路径不存在则创建

监控远程服务器的GPU

可以打开jupyterlab
在这里插入图片描述
在终端输入:

nvidia-smi -l 5

就可以看到GPU的使用情况了,确实比自己的笔记本跑的快!!!
在这里插入图片描述

一些命令

#查看当前 Python 版本
python --version
python -V
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐