2.创建项目;
3.准备并上传数据集;
4.新建调试任务;
5.选择 CPU 、 GPU 和运行镜像;
6.挂载数据集;
7.进入终端准备文件;
8.打开或上传 ;
9.修改数据路径并运行;
10.保存代码、日志和生成结果。
真正容易出错的,不是点击“新建任务”。
是文件名、压缩格式、挂载目录和环境依赖。
第一步:注册并创建项目
打开登录页面,可以根据平台当前支持的方式注册或登录。
登录进去之后, 进入到工作区, 去新建出一个项目, 项目的名称以及仓库的名称, 建议直接采用英文, 像这样:
mnist-training image-classification-demo pytorch-notebook-test为什么不推荐中文?
网页自身或许能够正常得以显示, 然而命令行工具、脚本、压缩程序以及第三方依赖对于非 ASCII 路径的支持并非是统一的。进行的训练, 已然持续了半小时, 可最终却是由于路径编码走向失败, 实在是令人觉得冤枉。
项目具有用于代码保存的功能, , 还有配置文件以及说明文档能够被其保存。当涉及到账号密钥、Token以及私有数据的时候, 公开仓库禁止提交这些内容。
第二步:准备数据集
原文建议将不同数据集分类存放,并使用英文名称。
上传前可以整理成:
dataset-name/ ├── train/ ├── validation/ ├── test/ └── labels.csv再压缩为平台支持的格式,例如:
dataset-name.zip dataset-name.tar.gz大文件进行上传时, 会受到网络方面、浏览器方面以及平台限制方面的影响。在上传这个进程之中, 不要过于频繁地去刷新页面, 当完成上传之后, 要检查文件大小以及目录预览是否处于正常状态。
这里有一个很容易误判的点。
数据集页面所在的平台, 有可能将压缩包之中的内容予以展开,从而供你去进行预览, 然而呢, 在调试任务里实施挂载的这个当时, 所拿到的依然有很大的可能性是原始的压缩文件。
看得见目录,不代表运行时已经解压。
第三步:创建调试任务
进入项目的算力或调试任务入口,创建新的调试任务。
资源选择可以按任务类型判断:
•只做数据清洗、语法测试和轻量脚本,优先选择 CPU ;
先是训练神经网络, 接着运行 CUDA 模型, 然后处理大规模张量, 之后再去选择 GPU。
当下, 账号所能看到的列表, 是用以确定GPU型号、时长以及资源额度的依据。
2024年时, 曾有过这样的建议, 那就是针对深度学习任务使用T4, 并且还提供过一条镜像地址, 这条镜像地址对应的是CUDA 11.1 、 1.9.1。
两年后的现在,不建议机械照抄旧镜像。
应该先看项目依赖:
Python 版本 PyTorch / TensorFlow 版本 CUDA 版本 cuDNN 版本在当前的镜像列表当中, 再度去挑选出能够兼容的环境, 模型所具备的要求本来为2.x , 然而却选择了1.9的镜像, 后续去补充包的话, 只会让情况变得越来越混乱了。
第四步:挂载数据集并启动
创建任务时,将前面上传的数据集挂载进去。
将资源、镜像、数据集以及任务名称予以确认之后再启动。算力实例并非在点完的瞬间就处于就绪状态, 创建它、使其排队以及进行初始化, 这些环节都极有可能需要耗费一定的时间才能完成。要用中文的“。”。
状态变成可用后,再进入调试界面。
原来的内容进行提醒, 针对同一账号在同一时间运行的调试任务数量存在着可能有限的情况。当下具体的并发数量以及资源相应规则呢, 应该是以账号页面作为标准的。
不用的任务及时停止。
这既能释放资源,也避免把额度耗在一个忘记关闭的页面上。
第五步:先认清三个目录
原文示例中的主要操作位于:
/tmp其中常见目录包括:
/tmp/code对应代码和 工作区。
/tmp/dataset对应挂载的数据集。
平台升级进程结束之后, 路径存在发生变化的可能性。最为稳妥的方式并非凭借死记硬背, 而是于终端展开执行操作:
pwd ls-lah find/tmp-maxdepth2-typed|head-50先确认当前环境,再修改代码中的数据路径。
第六步:解压数据集
进入挂载目录后先检查文件:
cd/tmp/dataset ls-lah如果看到的是 ZIP 文件,需要解压。
部分镜像没有预装 unzip,可以在拥有安装权限时执行:
apt-getupdate apt-getinstall-yunzip解压到代码工作目录:
mkdir-p/tmp/code/data unzipdataset-name.zip-d/tmp/code/datatar.gz 可以使用:
mkdir-p/tmp/code/data tar-xzfdataset-name.tar.gz-C/tmp/code/data若镜像不存在apt-get权限, 那么也能够径直采用, 标准库。
frompathlibimportPathfromzipfileimportZipFilesource=Path('/tmp/dataset/dataset-name.zip')target=Path('/tmp/code/data')target.mkdir(parents=True,exist_ok=True)withZipFile(source)asarchive:archive.extractall(target)解压后再次检查:
find/tmp/code/data-maxdepth2-typef|head别急着运行训练。先确认实际目录层级和代码预期一致。
第七步:打开终端和
调试环境启动后,终端可能需要等待几秒钟。
倘若平台准备了类界面, 那么能够去新建一个.ipynb文件, 或者将本地的拖进工作区域之中。
上传后最先检查的是数据路径,例如:
DATA_ROOT='/tmp/code/data'不要继续使用本机路径:
D:\datasets\mnist /Users/name/Desktop/data点击顶部运行按钮执行当前单元格,或者使用:
Shift + Enter每运行一段,都先看输出。
是从导入对应的库开始, 而后去检查 GPU 的情况, 接着读取少量的样本, 不要在第一格的时候着手启动完整的训练。
第八步:检查 GPU 和数据
在 中可以先运行:
importosfrompathlibimportPathprint('working directory:',os.getcwd())print('data exists:',Path('/tmp/code/data').exists())项目再检查:
importtorchprint('torch:',torch.__version__)print('cuda available:',torch.cuda.is_available())iftorch.cuda.is_available():print('gpu:',torch.cuda.get_device_name(0))确认三个问题:
1. 内核使用的是预期 环境;
2.数据路径存在并且能读取;
3.CUDA 状态符合任务配置。
那在 GPU 任务当中, torch.cuda.() 返回的是 False, 此时不要接着再进行训练。首先要去检查镜像版本, 还要去检查内核版本, 并且也要去检查框架版本。
缺少 怎么办
原文遇到过:
ModuleNotFoundError: No module named 'matplotlib'可以在 单元格中安装:
%pipinstallmatplotlib与直接书写pip相比较而言, %pip 更易于被安装至与当前内核相对应的环境之中。
安装后验证:
importmatplotlibprint(matplotlib.__version__)如果仍然无法导入,重启内核后再试。
亦有同样之法可适用於所缺之普通包, 然切不可随意进行torch、CUDA相关库之升级, 缘由为倘底层框架一旦遭替换, 原本可正常使用之GPU环境极有可能因而损坏。
五个常见坑
文件名和目录使用中文
页面呈现出可展示的状态, 并不意味着任一脚本皆能够妥善处理。项目、压缩包以及路径尽可能采用英文、数字、短横线与下划线。
数据集挂载了却找不到图片
先去检查一下, 挂载目录当中的究竟是文件夹, 还是压缩包, 之后再去详尽核对一番, 是不是多套了一层同名的目录。
安装了解压工具仍然不能用
务必查明安装的究竟是unzip, 并非单凭创建ZIP文件才安装, 也就是并非仅安装了zip, 当欠缺系统权限的时候, 借助 解压。
pip 安装后 仍然报缺包
可能终端和另外的某个存在方面使用差异, 以 %pip 在特定处优先使用为宜, 同时另行去做检查。
importsysprint(sys.executable)代码和结果没有保存
经调试的环境并非一直供个人使用的电脑, 在任务停止、被回收或者超出平台所保留的期限时间之后, 文件以及日志有可能没办法再供人去访问了。
重要内容要及时:
•提交到项目仓库;
•下载到本地;
•保存为数据集或模型资产;
•按平台当前支持的方式持久化。
引用过往“超过30天的任务便无法下载结果以及查看日志”这般平台提示过的内容。此条信息源自于2024年, 当下保留期限需依据任务页面最新规则来判定。
一份更稳的运行顺序
我建议第一次使用时按照下面的顺序:
创建项目 → 上传一个小数据集 → 用 CPU 任务熟悉目录和 Notebook → 确认代码能读取数据 → 再创建 GPU 任务 → 检查 CUDA → 小批量运行 → 最后启动完整训练莫在初次之时, 就实施上传几十GB数据之举, 去挑选最为昂贵的资源, 随后运行一个路径未曾更改的设置。
先把小闭环跑通。
写在最后
云端算力平台真正节省的,不只是购买显卡的钱。
它将项目、数据同运行环境放置在一起, 使得有一段能够从本机桌面脱离, 进而进入到一个相对而言可复现的任务空间之中。
但平台不会替你解决所有问题。
要看路径, 要解压缩包, 要去核对框架版本, 要自己保存重要结果。
算力可以共享。
这些基本功,省不了。