一般自己怎么做网站,立陶宛与俄罗斯最新消息,网站的费用,搭建网站要不要给域名对方一、事先准备
必须要对Mindspore有一些了解#xff0c;因为这个框架确实有些和其它流程不一样的地方#xff0c;比如算子计算、训练过程中的自动微分#xff0c;所以这两个课程要好好过一遍#xff0c;官网介绍文档最好也要过一遍 1、零基础Mindspore#xff1a;https://…一、事先准备
必须要对Mindspore有一些了解因为这个框架确实有些和其它流程不一样的地方比如算子计算、训练过程中的自动微分所以这两个课程要好好过一遍官网介绍文档最好也要过一遍 1、零基础Mindsporehttps://www.bilibili.com/video/BV1CS4y1z72r/?spm_id_from333.337.search-card.all.click 2、MindSpore进阶课程https://www.bilibili.com/video/BV12W4y1t7yn/?spm_id_from333.337.search-card.all.click
3、Mindspore教程MindSpore教程 — MindSpore master documentation
对这些课程和文档过一遍后可以去看几个数据加载和模型训练的案例 最好是自定义数据集加载因为大多数据集都是表格或者其它图像分类案例较少 跑一下几个案例理解他们的这个过程
二、框架转换过程注意事项
框架转换主要有以下基本拿转换医学影像分割的来讲述pytorch-》Mindspore 官网也是有给网络迁移部分的要点说明的也可以好好看看
转换之前一定要理解自己原有网络当中的每一部分的处理、每一部分的数据形态和类型这样转换起来比较容易
1、数据集导入
判断好数据集是什么类型能否用快捷方式加载如果不能就自定义数据集然后用GeneratorDataset进行加载 数据加载类注意最后返回的要是两部分值前者为数据后者为标签
一定要这样因为GeneratorDataset需要这种形式期间的计算每一步可以看看有无问题形态和原有网络保持一致
2、网络结构搭建
2.1 如果已经有算法也有网络那就一层的对比着看保证每层输入输出一样 2.2 对应的网络中的API计算大多都能对应上主要有部分会有细节差异需要去官网查询对应API填写适应参数
如这里和pytorch的就不一样mindspore中的scale_factor不能和bilinear一起所有要替换为其它插值方式另外插值法方式也会影响padding的值
就是要保证每层的输入输出都一致计算要正常如这里mindspore不写stride2就会导致后面的计算出问题
2.3 一点一点的对比和尝试必须要保证网络重每一步的计算前和计算后的数据形态一样
最终的输出也是要保持一致数据经过网络得到预测值预测值的shape注意保持一致
3、模型训练
一定要保证数据的准确在pytorch内是什么形式在mindspore内也要是 对于梯度和loos的计算多打印出来看一看虽然pytorch和mindspore训练过程有所不同但整体还是相似的
注意label的shape要和模型输出的logit一样这样才能计算loss这里可能会有维度不相同那就去掉无关维度即可mindspore里也有squeeze多看看文档 流程就是训练step内使用gard_fn进行自动微分计算这里mindspore用了这就不用梯度清零了自动微分计算value_and_grad中又会调用前向传播函数前向传播中涉及到loos的计算一般只要loss输出没有问题那么其它都是小事情 注意各项的形式很容易理解的还是
4、训练和评估
这个过程就很简单了只要前面定义好训练step和其他的什么优化器、损失函数还有前向传播网络什么的那么这就很简单了获取可迭代数据进行一个batch一个batch的训练就行了loss可以计算可以输出模型的评估上mindspore里面也有提供一些自定义的评估看需要用到什么先去搜搜看看看如何使用的直接套用即可
5、模型保存和调用推理
这部分就很简单了按照格式定义即可 三、总结
整体来说只要数据集构建没有问题网络结构没有问题需要计算测试 那么框架转换就很简单了因为训练的流程都大致相同虽然mindspore里面没有梯度清零什么的 但是也有独特的自动微分梯度求导这个多看几个案例其实也是一套流程