天数智芯DeepSpark代码仓地址:
iluvatar/DeepSpark - DeepSpark - OpenI - 启智AI开源社区提供普惠算力! (pcl.ac.cn)
首先我们进到天数智芯DeepSpark代码仓,点击【派生】将代码仓Fork到我们自己的目录下
Fork好代码仓后我们到我们Fork后的代码仓中找到AlexNet Pytorch的训练代码所在位置
代码所在位置:cv/classification/alexnet/pytorch
为了偷懒直接用OpenI进行在线编辑,主要修改的代码为train.py,建议直接新建一个新的py文件然后复制原来train.py的内容进行修改
1.首先找到原来train_dir = os.path.join这一段,修改为下面
#使用c2net读取数据集
c2net_context = prepare() #准备阶段
datasetPath = c2net_context.dataset_path #获取数据集地址
train_dir = os.path.join(datasetPath, 'imagenet/imagenet/train')
val_dir = os.path.join(datasetPath, 'imagenet/imagenet/val')
2.原先if args.output_dir这一段的代码修改为以下
outputPath = c2net_context.output_path #获取输出目录
if outputPath:
checkpoint = {
'model': model_without_ddp.state_dict(),
'optimizer': optimizer.state_dict(),
'lr_scheduler': lr_scheduler.state_dict(),
'epoch': epoch,
'args': args}
save_on_master(
checkpoint,
os.path.join(outputPath, 'model_{}.pth'.format(epoch)))
save_on_master(
checkpoint,
os.path.join(outputPath, 'checkpoint.pth'))
epoch_total_time = time.time() - epoch_start_time
epoch_total_time_str = str(datetime.timedelta(seconds=int(epoch_total_time)))
print('epoch time {}'.format(epoch_total_time_str))
#上传输出文件
from c2net.context import upload_output
upload_output()
这样两步代码就修改好了,接下去就可以创建训练任务了。找到代码仓中的云脑,选择训练任务,然后点击创建训练任务
创建训练任务的页面中选择【智算网络集群】然后计算资源选择【天数智芯GPGPU】,如下:
下半部分的参数设置主要如下图所示,这边因为是AlexNet的训练任务,所以数据集我选择了一个ImageNet_Tiny,如果是其他的数据集对应选择就好。启动文件这边设置为:cv/classification/alexnet/pytorch/xxxx.py,xxxx.py为我们前面新建的训练代码文件
全都设置好后点【新建任务】开始训练任务,当然如果有自己的超参设置的话直接点【新建运行参数】就可以添加对应的Args参数了。训练完成后悔显示为suceesed就说明训练成功了,然后在日志那边也可以看到相应的输出信息