[{"data":1,"prerenderedAt":406},["ShallowReactive",2],{"content-query-XjkLHgtFnM":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"cover":11,"type":12,"body":13,"_type":400,"_id":401,"_source":402,"_file":403,"_stem":404,"_extension":405},"/news/zh/2074","zh",false,"","重磅首发 | 昇思MindSpore视觉基础套件MindSpore CV，性能更强悍、操作更简洁","MindSpore CV套件是基于MindSpore框架的视觉算法库，集成了业界经典视觉算法，优化器/调度器等易用工具组件。我们优先支持了ResNet，ViT，MobileNet系列，SwinTransformer等经典网络，并提供了适配昇腾的A+M训练策略和预训练权重。","2023-01-04","https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2023/01/06/aeb91e61ccff43e2810343be7baf2635.png","news",{"type":14,"children":15,"toc":397},"root",[16,24,36,41,46,57,62,71,76,84,92,97,112,117,125,130,138,146,154,166,171,182,187,192,197,202,212,223,228,236,241,246,251,256,264,269,274,288,293,298,303,308,313,321,329,334,342,350,358,363,372,380,385],{"type":17,"tag":18,"props":19,"children":21},"element","h1",{"id":20},"重磅首发-昇思mindspore视觉基础套件mindspore-cv性能更强悍操作更简洁",[22],{"type":23,"value":8},"text",{"type":17,"tag":25,"props":26,"children":27},"p",{},[28,30],{"type":23,"value":29},"在Openl启智社区线上AI协作开发环境与充沛算力支持下，昇思MindSpore团队联合西安交通大学、西安电子科技大学联合开发完成MindSpore CV套件0.1版本。**MindSpore CV套件是基于MindSpore框架的视觉算法库，集成了业界经典视觉算法，优化器/调度器等易用工具组件。我们优先支持了ResNet，ViT，**MobileNet系列，",{"type":17,"tag":31,"props":32,"children":33},"strong",{},[34],{"type":23,"value":35},"SwinTransformer等经典网络，并提供了适配昇腾的A+M训练策略和预训练权重。",{"type":17,"tag":25,"props":37,"children":38},{},[39],{"type":23,"value":40},"MindSpore CV套件将数据集创建、数据增强、模型构建、训练策略相关等各模块进行统一接口封装，方便用户快速训练模型和调参。此外，我们针对每个模型提供了详细的超参方案和训练策略，方便用户快速启动各模型的训练与验证。",{"type":17,"tag":25,"props":42,"children":43},{},[44],{"type":23,"value":45},"Github开源链接：",{"type":17,"tag":25,"props":47,"children":48},{},[49],{"type":17,"tag":50,"props":51,"children":55},"a",{"href":52,"rel":53},"https://github.com/mindspore-lab/mindcv",[54],"nofollow",[56],{"type":23,"value":52},{"type":17,"tag":25,"props":58,"children":59},{},[60],{"type":23,"value":61},"Openl启智社区链接：",{"type":17,"tag":25,"props":63,"children":64},{},[65],{"type":17,"tag":50,"props":66,"children":69},{"href":67,"rel":68},"https://openi.pcl.ac.cn/MindSpore/mindcv",[54],[70],{"type":23,"value":67},{"type":17,"tag":25,"props":72,"children":73},{},[74],{"type":23,"value":75},"以下将带大家进一步了解MindSpore CV的各个模块和特性。",{"type":17,"tag":25,"props":77,"children":78},{},[79],{"type":17,"tag":31,"props":80,"children":81},{},[82],{"type":23,"value":83},"01",{"type":17,"tag":25,"props":85,"children":86},{},[87],{"type":17,"tag":31,"props":88,"children":89},{},[90],{"type":23,"value":91},"模型支持",{"type":17,"tag":25,"props":93,"children":94},{},[95],{"type":23,"value":96},"当前支持30+主流SoTA模型算法(CNN/Transformer)，并预置对应的预训练权重及训练策略配置文件，可通过list_models()接口查看已经支持的模型列表。",{"type":17,"tag":25,"props":98,"children":99},{},[100,105,107],{"type":17,"tag":31,"props":101,"children":102},{},[103],{"type":23,"value":104},"1.1",{"type":23,"value":106}," ",{"type":17,"tag":31,"props":108,"children":109},{},[110],{"type":23,"value":111},"模型定义代码风格统一",{"type":17,"tag":25,"props":113,"children":114},{},[115],{"type":23,"value":116},"为了增强模型代码易用性/可读性，我们从算法逻辑维度重新梳理原有MindSpore Model Zoo代码，遵循统一的接口调用方式进行二次重构，其中nn API接口都使用最新昇思MindSpore编程范式。此外，增加forward_features()接口进行视觉特征抽取，方便支持下游任务。",{"type":17,"tag":25,"props":118,"children":119},{},[120],{"type":17,"tag":31,"props":121,"children":122},{},[123],{"type":23,"value":124},"1.2 公共网络层抽象",{"type":17,"tag":25,"props":126,"children":127},{},[128],{"type":23,"value":129},"MindSpore CV对一些常用的神经网络层或模块进行了封装，方便用户进行自定义的模型构建和研究，例如，对于CNN类，提供了Squeeze_excite（SE），全局池化层等模块，而对于Transformer类，同样提供了Patch_Embedding等模块。",{"type":17,"tag":25,"props":131,"children":132},{},[133],{"type":17,"tag":31,"props":134,"children":135},{},[136],{"type":23,"value":137},"02",{"type":17,"tag":25,"props":139,"children":140},{},[141],{"type":17,"tag":31,"props":142,"children":143},{},[144],{"type":23,"value":145},"模块接口",{"type":17,"tag":25,"props":147,"children":148},{},[149],{"type":17,"tag":31,"props":150,"children":151},{},[152],{"type":23,"value":153},"2.1 数据模块",{"type":17,"tag":25,"props":155,"children":156},{},[157],{"type":17,"tag":31,"props":158,"children":159},{},[160],{"type":17,"tag":161,"props":162,"children":163},"em",{},[164],{"type":23,"value":165},"2.1.1 数据集创建",{"type":17,"tag":25,"props":167,"children":168},{},[169],{"type":23,"value":170},"通过create_dataset快速创建数据集，目前支持的数据集主要有MNIST，Cifar等CV领域常用数据集，通过设置download参数能够将数据集下载到本地并解压，同时MindSpore CV也支持用户自定义数据集。",{"type":17,"tag":25,"props":172,"children":173},{},[174],{"type":17,"tag":31,"props":175,"children":176},{},[177],{"type":17,"tag":161,"props":178,"children":179},{},[180],{"type":23,"value":181},"2.1.2 数据增强",{"type":17,"tag":25,"props":183,"children":184},{},[185],{"type":23,"value":186},"通过create_transforms不仅能够实现基础的数据增强，如水平翻转，缩放，平移等，同时我们也支持大部分流行的高阶数据增强方法和自动增强算法，例如：",{"type":17,"tag":25,"props":188,"children":189},{},[190],{"type":23,"value":191},"**Mixup：**将随机的两张样本按比例混合，同时类别标签也按比例混合。",{"type":17,"tag":25,"props":193,"children":194},{},[195],{"type":23,"value":196},"**Cutmix：**将一部分区域裁剪掉但不填充0像素而是随机填充训练集中的其他数据的区域像素值，类别标签也按比例混合。",{"type":17,"tag":25,"props":198,"children":199},{},[200],{"type":23,"value":201},"**AutoAugment：**通过强化学习搜索得到的ImageNet上最优的数据增强策略。",{"type":17,"tag":25,"props":203,"children":204},{},[205,210],{"type":17,"tag":31,"props":206,"children":207},{},[208],{"type":23,"value":209},"RandAugment:",{"type":23,"value":211}," 随机选取和组合不同的数据增强策略。",{"type":17,"tag":25,"props":213,"children":214},{},[215],{"type":17,"tag":31,"props":216,"children":217},{},[218],{"type":17,"tag":161,"props":219,"children":220},{},[221],{"type":23,"value":222},"2.1.3 数据加载",{"type":17,"tag":25,"props":224,"children":225},{},[226],{"type":23,"value":227},"完成数据集创建和数据增强之后，通过create_loader接口切分batch，预加载输入数据，就可以使用处理好的数据集开始训练了。",{"type":17,"tag":25,"props":229,"children":230},{},[231],{"type":17,"tag":31,"props":232,"children":233},{},[234],{"type":23,"value":235},"2.2 优化器模块",{"type":17,"tag":25,"props":237,"children":238},{},[239],{"type":23,"value":240},"MindSpore CV实现了多个目前主流的优化器以满足用户的研究、开发需求，并可通过create_optimizer接口调用，例如：",{"type":17,"tag":25,"props":242,"children":243},{},[244],{"type":23,"value":245},"**Adam：**Adam本质上是带有动量项的RMSProp，它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点在于经过偏置校正后，每一次迭代学习率都有确定范围，使参数比较稳定。",{"type":17,"tag":25,"props":247,"children":248},{},[249],{"type":23,"value":250},"**Adamw：**AdamW是在Adam+L2正则化的基础上进行改进的算法。单独的Adam优化带L2正则项在计算梯度的时候会加上对正则项求梯度的结果，优化效果并不理想，因此AdamW使用权重缩减对所有的权重都采用相同的系数进行更新，从而增加了模型的泛化能力。",{"type":17,"tag":25,"props":252,"children":253},{},[254],{"type":23,"value":255},"**Adan：**通过结合改写的Nesterov冲量与自适应优化算法，并引入解耦的权重衰减，可以得到Adan优化器。利用外推点，Adan可以提前感知周围的梯度信息，从而高效地逃离尖锐的局部极小区域，以增加模型的泛化性。",{"type":17,"tag":25,"props":257,"children":258},{},[259],{"type":17,"tag":31,"props":260,"children":261},{},[262],{"type":23,"value":263},"2.3 损失函数模块",{"type":17,"tag":25,"props":265,"children":266},{},[267],{"type":23,"value":268},"通过create_loss接口可调用损失函数模块，该模块包含常见的图像分类损失函数: CrossEntropy和Binary Cross Entropy及其变种，并支持软标签或稀疏标签输入(soft/sparse labels)、类别权重配置(class weights)以及标签平滑约束（label smoothing），例如：",{"type":17,"tag":25,"props":270,"children":271},{},[272],{"type":23,"value":273},"**Cross entropy：**分类问题中最常用的损失函数，基于信息论中交叉熵的概念，反映预测概率分布和真实概率分布的差别。交叉熵和MSE主要的区别是它对错误输出的惩罚更强烈。当用户使用Mixup或Label Smoothing时， create_loss接口将会自动使用Soft Cross Entropy。",{"type":17,"tag":25,"props":275,"children":276},{},[277,282,283],{"type":17,"tag":31,"props":278,"children":279},{},[280],{"type":23,"value":281},"2.4",{"type":23,"value":106},{"type":17,"tag":31,"props":284,"children":285},{},[286],{"type":23,"value":287},"学习率调度器模块",{"type":17,"tag":25,"props":289,"children":290},{},[291],{"type":23,"value":292},"通过create_scheduler可快速调用目前主流的学习率更新算法。例如：",{"type":17,"tag":25,"props":294,"children":295},{},[296],{"type":23,"value":297},"**Cosine Decay：**根据余弦函数曲线进行学习率的衰减，衰减图和余弦函数相似。",{"type":17,"tag":25,"props":299,"children":300},{},[301],{"type":23,"value":302},"**Exponential Decay：**根据指数曲线进行衰减，一般来说开始衰减的快后来慢，根据设置的参数决定底数。",{"type":17,"tag":25,"props":304,"children":305},{},[306],{"type":23,"value":307},"**Multi-step Decay：**根据里程碑进行衰减，每当训练step到达一个里程碑，学习率衰减一次。",{"type":17,"tag":25,"props":309,"children":310},{},[311],{"type":23,"value":312},"此外：我们对所有支持的学习率调度器添加warm up策略，来保证网络在初期阶段的训练能够平稳进行，提升易用性。",{"type":17,"tag":25,"props":314,"children":315},{},[316],{"type":17,"tag":31,"props":317,"children":318},{},[319],{"type":23,"value":320},"03",{"type":17,"tag":25,"props":322,"children":323},{},[324],{"type":17,"tag":31,"props":325,"children":326},{},[327],{"type":23,"value":328},"模型训练",{"type":17,"tag":25,"props":330,"children":331},{},[332],{"type":23,"value":333},"将以上模块进行组装后便可得到模型训练脚本，用户可以方便地一键开启单卡或多卡训练。为了提升易用性，MindSpore CV重新实现了mode.train()的callback功能，增加边训边验的能力，方便用户观察模型loss、精度等变化状态。",{"type":17,"tag":25,"props":335,"children":336},{},[337],{"type":17,"tag":31,"props":338,"children":339},{},[340],{"type":23,"value":341},"04",{"type":17,"tag":25,"props":343,"children":344},{},[345],{"type":17,"tag":31,"props":346,"children":347},{},[348],{"type":23,"value":349},"快速开始",{"type":17,"tag":25,"props":351,"children":352},{},[353],{"type":17,"tag":31,"props":354,"children":355},{},[356],{"type":23,"value":357},"4.1 安装",{"type":17,"tag":25,"props":359,"children":360},{},[361],{"type":23,"value":362},"使用pip安装MindSpore CV",{"type":17,"tag":25,"props":364,"children":365},{},[366],{"type":17,"tag":367,"props":368,"children":371},"img",{"alt":369,"src":370},"cke_57744.png","https://fileserver.developer.huaweicloud.com/FileServer/getFile/cmtybbs/e64/154/b38/90a1d5d431e64154b387b3660e356ff5.20230105090423.83237663377949165454387150084332:50540105014330:2400:AFE3FFB154A637A34652B398C48EC04BDF7CC0AD06EF4E2762F32E5B8756C5A7.png",[],{"type":17,"tag":25,"props":373,"children":374},{},[375],{"type":17,"tag":367,"props":376,"children":379},{"alt":377,"src":378},"cke_59387.png","https://fileserver.developer.huaweicloud.com/FileServer/getFile/cmtybbs/e64/154/b38/90a1d5d431e64154b387b3660e356ff5.20230105090452.61590078745624379362242758825955:50540105014330:2400:8A16FC66B43BFA4BF4ACCD1957B81B6E83389E3F65AB382DE516DB6E94A28785.png",[],{"type":17,"tag":25,"props":381,"children":382},{},[383],{"type":23,"value":384},"MindSpore CV视觉基础套件提供了从快速开发，模型微调训练到推理部署的完整教程，不仅能够满足开发者从零开始快速上手，同时也能够帮助开发者全面掌握深度学习的技术。",{"type":17,"tag":25,"props":386,"children":387},{},[388,390],{"type":23,"value":389},"同时，昇思MindSpore与Openl启智社区深度合作，为昇思MindSpore开发者提供365天*24小时上百万卡时的昇思MindSpore+NPU普惠算力，欢迎昇思MindSpore产学研开发者使用，基于昇思MindSpore开发你自己的模型算法套件和应用。（链接：",{"type":17,"tag":50,"props":391,"children":394},{"href":392,"rel":393},"https://openi.pcl.ac.cn/%EF%BC%89",[54],[395],{"type":23,"value":396},"https://openi.pcl.ac.cn/）",{"title":7,"searchDepth":398,"depth":398,"links":399},4,[],"markdown","content:news:zh:2074.md","content","news/zh/2074.md","news/zh/2074","md",1776506062175]