|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # 如何在启智平台上进行模型训练—NPU_手写数字识别示例
-
- ## 1.启智集群和智算集群的NPU训练样例
-
- ###### 启智集群的示例代码:
-
- - 训练示例请参考示例中[train_npu.py](./train_npu.py)的代码注释
- - 启智集群训练任务已经将ImageNet-1k数据集挂载到训练镜像,具体使用方法请参考示例中[read_imagenet.py](./read_imagenet.py)的代码注释
- - 继续训练功能示例代码请参考[train_continue.py](./train_continue.py) ,启智与智算的用法相同
-
- ## 2. 在openi上获取数据集,预训练模型,输出路径
-
- 安装openi包
-
- ```
- pip install -U openi
- ```
-
- 使用openi包
-
- ```
- #导入包
- from openi.context import prepare, upload_openi
-
- #初始化导入数据集和预训练模型到容器内
- openi_context = prepare()
-
- #获取数据集路径,预训练模型路径,输出路径
- dataset_path = openi_context.dataset_path
- pretrain_model_path = openi_context.pretrain_model_path
- output_path = openi_context.output_path
-
- #回传结果到openi
- upload_openi()
- ```
-
- ## 3.[创建NPU训练示例任务界面教程](./Example_Picture/快速创建NPU训练任务.md)
-
- ## 4.FAQ
-
- ### 4.1 关于启智平台公共库[openi](https://openi.pcl.ac.cn/OpenIOSSG/openi-pypi):
-
- 主要使用的方法有以下几个:
-
- ```
- prepare 准备数据集,模型,输出路径
- upload_openi 将训练镜像的输出结果拷贝回启智平台
- obs_copy_file 通过mox拷贝文件
- obs_copy_folder 通过mox拷贝文件夹
- ```
-
- ### 4.2 解决参数报错问题:
-
- 请在代码中加入 `args, unknown = parser.parse_known_args()`,可忽略掉 `--ckpt_url`,`--data_url`, `--multi_date_url`等参数报错问题
-
- ### 4.3 多卡训练任务如何只让数据集只拷贝一次
-
- 使用缓存文件和local_rank%8作为判断,若第0卡拷贝完成,则其它卡不拷贝,并在第0卡拷贝数据完成后才执行之后的代码
-
- ```
- if local_rank%8==0:
- 这里省略下载数据的代码...
- f = open("/cache/download_input.txt", 'w')
- f.close()
- try:
- if os.path.exists("/cache/download_input.txt"):
- print("download_input succeed")
- except Exception as e:
- print("download_input failed")
- while not os.path.exists("/cache/download_input.txt"):
- time.sleep(1)
- ```
-
- ## 对于示例代码有任何问题,欢迎在本项目中提issue。
|