generated from GT-ZhangAcer/AI-Studio-Template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run.py
81 lines (68 loc) · 4.85 KB
/
run.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# -*- coding: utf-8 -*-
"""
空白模板
"""
###### 欢迎使用脚本任务,首先让我们熟悉脚本任务的一些使用规则 ######
# 详细教程请在AI Studio文档(https://ai.baidu.com/ai-doc/AISTUDIO/Ik3e3g4lt)中进行查看.
# 脚本任务使用流程:
# 1.编写代码/上传本地代码文件
# 2.调整数据集路径以及输出文件路径
# 3.填写启动命令和备注
# 4.提交任务选择运行方式(单机单卡/单机四卡/双机四卡)
# 5.项目详情页查看任务进度及日志
# 注意事项:
# 1.输出结果的体积上限为20GB,超过上限可能导致下载输出失败.
# 2.脚本任务单次任务最大运行时长为72小时(三天).
# 3.在使用单机四卡或双击四卡时可不配置GPU编号,默认启动所有可见卡;如需配置GPU编号,单机四卡的GPU编号为0,1,2,3;双机四卡的GPU编号为0,1.
# 日志记录. 任务会自动记录环境初始化日志、任务执行日志、错误日志、执行脚本中所有标准输出和标准出错流(例如print()),用户可以在「提交」任务后,通过「查看日志」追踪日志信息.
# -------------------------------关于数据集和输出文件的路径问题---------------------------------
# 数据集路径
# datasets_prefix为数据集的根路径,完整的数据集文件路径是由根路径和相对路径拼接组成的。
# 相对路径获取方式:请在编辑项目状态下通过点击左侧导航「数据集」中文件右侧的【复制】按钮获取.
# datasets_prefix = '/root/paddlejob/workspace/train_data/datasets/'
# train_datasets = datasets_prefix + '通过路径拷贝获取真实数据集文件路径'
# 输出文件路径
# 任务完成后平台会自动把output_dir目录所有文件压缩为tar.gz包,用户可以通过「下载输出」将输出结果下载到本地.
# output_dir = "/root/paddlejob/workspace/output/"
# -------------------------------关于启动命令需要注意的问题------------------------------------
# 脚本任务支持两种运行方式
# 1.shell 脚本. 在 run.sh 中编写项目运行时所需的命令,并在启动命令框中填写如 bash run.sh 的命令使脚本任务正常运行.
# 2.python 指令. 在 run.py 编写运行所需的代码,并在启动命令框中填写如 python run.py <参数1> <参数2> 的命令使脚本任务正常运行.
# 注:run.sh、run.py 可使用自己的文件替代,如python train.py 、bash train.sh.
# 命令示例:
# 1. python 指令
# ---------------------------------------单机四卡-------------------------------------------
# 方式一(不配置GPU编号):python -m paddle.distributed.launch run.py
# 方式二(配置GPU编号):python -m paddle.distributed.launch --gpus="0,1,2,3" run.py
# ---------------------------------------双机四卡-------------------------------------------
# 方式一(不配置GPU编号):python -m paddle.distributed.launch run.py
# 方式二(配置GPU编号):python -m paddle.distributed.launch --gpus="0,1" run.py
# 2. shell 命令
# 使用run.sh或自行创建新的shell文件并在对应的文件中写下需要执行的命令(需要运行多条命令建议使用shell命令的方式)。
# 以单机四卡不配置GPU编号为例,将单机四卡方式一的指令复制在run.sh中,并在启动命令出写出bash run.sh
# coding=utf-8
###### 欢迎使用脚本任务,让我们首选熟悉下一些使用规则吧 ######
# 数据集文件目录
# 数据集文件具体路径请在编辑项目状态下,通过左侧导航栏「数据集」中文件路径拷贝按钮获取
# train_datasets = '通过路径拷贝获取真实数据集文件路径 '
# 输出文件目录. 任务完成后平台会自动把该目录所有文件压缩为tar.gz包,用户可以通过「下载输出」可以将输出信息下载到本地.
output_dir = "/root/paddlejob/workspace/output"
# 日志记录. 任务会自动记录环境初始化日志、任务执行日志、错误日志、执行脚本中所有标准输出和标准出错流(例如print()),用户可以在「提交」任务后,通过「查看日志」追踪日志信息.
import os
if __name__ == "__main__":
print(os.listdir())
print(os.getcwd())
# 安装rar
os.system('pip install -r requirements.txt')
print('解压数据集')
os.system("python unzip.py")
# 四卡训练
os.system("export CUDA_VISIBLE_DEVICES=0,1,2,3")
# os.system("export CUDA_VISIBLE_DEVICES=0")
os.system(
"python -m paddle.distributed.launch --log_dir /root/paddlejob/workspace/output/log train.py --nEpochs 300 --save /root/paddlejob/workspace/output/myoutput --resume checkpoint_model_new.pth.tar ")
print('good good.......................................')
# os.system("mkdir {}\myoutput".format(output_dir))
# os.system("cp ./output {}\myoutput".format(output_dir))
# os.system()
# os.system("mv ./myoutput {}".format(output_dir))