本地pytorch代码迁移至华为云ModelArts平台训练
本地pytorch代码迁移至华为云ModelArts平台训练
本地pytorch代码迁移至华为云ModelArts平台训练
上传代码和数据集至华为云OBS
注册华为云OBS账号并使用AK登录。
参考这篇文件
修改pytorch本地训练代码文件,在源代码开始处新增以下片段。
# 创建解析
parser = argparse.ArgumentParser(description="train flower",
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
# 添加参数
parser.add_argument('--train_url', type=str,
help='the path model saved')
parser.add_argument('--data_url', type=str, help='the training data')
# 解析参数
args, unkown = parser.parse_known_args()
# 输出位置
train_url = args.train_url
# 数据集位置
data_url = args.data_url
train_url:表示你之前代码所指向的数据集位置(例:H:\dataset\flower_data)
data_url:表示你之前代码模型权重保存的位置或者其他输出文件保存的位置(例:H:\weights)
将原来的数据集路径用data_url变量代替,权重保存路径用train_url变量代替。
修改完成后,在Pycharm的Terminal里(或其他可执行python程序的终端)执行以下命令若程序成功运行,表明修改成功( 注意命令之间的空格,建议直接复制 )。
python train.py --data_url H:/dataset/TB_Database22 --train_url ./
本地调试完后,将模型训练的相关代码和数据集上传至OBS文件夹下。
华为云运行环境训练
华为云Notebook创建实例
登录华为云ModelArts控制台(华为云官网搜索框输入ModelArts控制台点击即可进入)
选择开发环境-Notebook-点击创建
设置相关参数(只提供两个pytorch镜像,若没有与本地同版本镜像,请自行尝试哪个版本能正常运行)
第一次部署选择CPU 2核 8GB规格,部署成功且熟悉部署过程后,再重新创建GPU实例执行训练作业,点击立即创建。
JupyterLab加载数据和代码
创建成功后,状态为运行中,如下图所示,再点击打开JupterLab。
选择Notebook中的pytorch进入编辑器。
通过以下指令将OBS中的数据集文件夹和代码文件夹拷贝至左侧文件存放区域。copy_parallel函数的第一个参数为OBS中的文件路径,第二个参数为拷贝过来的文件路径。
import moxing as mox
mox.file.copy_parallel('obs://anle-data/flower_myself','./flower')
开始训练
- 模型输出文件夹需要手动新建,处理好后点击Terminal图标,跳转至控制台。
- 在控制台输入以下指令进入到与训练代码同目录的文件夹。
cd work
- 输入以下指令执行训练代码
python train.py --data_url ../flower/ --train_url ../output/
…/flower/:数据集所在文件夹
…/output/:模型相关输出存放文件夹
可以看到模型已经开始运行,并保存权重get_squeezenet1_0.pth在output文件夹下,亦可下载至本地。 重要一点是代码必须先在本地调试好,再上传华为云平台进行训练,不然中途会出现各种难以解释的问题,祝好运 。