1# MindSpore Release Notes 2 3[View English](./RELEASE.md) 4 5## MindSpore 2.3.0 Release Notes 6 7### 主要特性及增强 8 9#### AutoParallel 10 11- [STABLE] 扩展函数式并行能力,[mindspore.shard](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore/mindspore.shard.html)新增支持图模式,图模式下以nn.Cell/function为单位设置输入与权重的并行切分策略,未设置的算子将通过"sharding_propagation"自动配置并行策略;增加支持手动重排布的[mindspore.reshard](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore/mindspore.reshard.html)接口,通过[mindspore.Layout](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore/mindspore.Layout.html)对张量设置精准切分策略。 12- [STABLE] 新增Callback接口[mindspore.train.FlopsUtilizationCollector](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/train/mindspore.train.FlopsUtilizationCollector.html)统计模型算力利用率信息MFU和硬件算力利用率信息HFU 。 13- [STABLE] 新增函数式通信接口[mindspore.communication.comm_func](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore.communication.comm_func.html)。 14- [BETA] O0和O1模式下,优化interleaved pipeline的内存占用。 15- [BETA] 自动并行模式下支持多机场景自动流水线策略生成(暂不支持单机场景自动流水线策略生成),需要将 `parallel_mode` 设置成自动并行 ``auto_parallel`` 并将 `search_mode` 设置成双递归算法 ``recursive_programming``。 16 17#### PyNative 18 19- [STABLE] 优化动态图的基础数据结构,提升算子API性能。 20- [STABLE] Tensor支持[register_hook](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore/Tensor/mindspore.Tensor.register_hook.html)功能,以便用户打印或者修改Tensor对应的梯度。 21- [STABLE] PyNativ模式支持重计算功能,用户可以通过重计算接口降低网络的显存峰值。 22 23#### FrontEnd 24 25- [STABLE] 优化Checkpoint保存、加载基础流程,提升性能20%。 26- [STABLE] 支持在保存、加载过程中对Checkpoint文件进行CRC校验,提升安全性。 27 28#### Dataset 29 30- [STABLE] 为以下数据增强增加昇腾处理后端支持:Equalize、Rotate、AutoContrast、Posterize、AdjustSharpness、Invert、Solarize、ConvertColor、Erase。 31- [STABLE] 增加视频文件读取、解析功能支持,详见API:[mindspore.dataset.vision.DecodeVideo](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/dataset_vision/mindspore.dataset.vision.DecodeVideo.html)、[mindspore.dataset.vision.read_video](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/dataset_vision/mindspore.dataset.vision.read_video.html#mindspore.dataset.vision.read_video)、[mindspore.dataset.vision.read_video_timestamps](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/dataset_vision/mindspore.dataset.vision.read_video_timestamps.html#mindspore.dataset.vision.read_video_timestamps)。 32- [STABLE] 支持在 `mindspore.dataset.GeneratorDataset`、`mindspore.dataset.Dataset.map` 及 `mindspore.dataset.Dataset.batch` 接口中指定 `max_rowsize` 参数为-1,此时数据多进程所使用的共享内存将随数据大小动态分配并高效运行,无需手动调参。 33 34#### Inference 35 36- [STABLE] 新增LLaMa2、LLaMa3、Qwen1.5等14个大模型支持训推一体架构,实现脚本、分布式策略和运行时的统一,典型大模型训练到推理部署周期下降到天级,通过融合大算子降低推理时延,有效提升网络吞吐量。 37 38#### PIJIT 39 40- [BETA] 支持Python 3.8和Python 3.10的字节码解析,扩大Python版本的支持范围。 41- [BETA] 支持Dynamic Shape、Symbolic Shape作为输入,使能动态输入场景。 42- [BETA] 使能单步构图能力,优化编译时间。 43- [BETA] 通过调整字节码支持了带有副作用的字节码被捕获(STORE_ATTR、STORE_GLOBAL、LIST_APPEND、dict.pop),使能自动混合精度,减少裂图,提升性能。 44 45#### Profiler 46 47- [STABLE] 提供分级Profiler功能,通过profiler_level参数可控制按照不同级别进行性能数据采集。 48- [STABLE] Profiler analyse方法新增mode参数,可配置异步解析模式,性能数据解析与训练并行。 49- [STABLE] Profiler接口新增data_simplification参数,用户可控制性能数据解析完成后是否删除多余数据,节省硬盘空间。 50- [STABLE] Profiler接口增强内存分析功能,用户通过profile_memory参数可采集框架、CANN、硬件的内存申请、释放信息,并可通过[MindStudio工具](https://www.hiascend.com/forum/thread-0230130822583032044-1-1.html)进行可视化分析。 51- [BETA] PyNative模式下Timeline整合host profiling信息,包括任务耗时、用户侧堆栈信息。 52 53#### Dump 54 55- [STABLE] 增强同步和异步Dump功能,统计信息Dump新增L2Norm信息、新增statistic_category字段支持用户自定义需要保存的统计信息,提高Dump易用性。同步和异步Dump支持情况可参考[Dump功能说明](https://www.mindspore.cn/tutorials/experts/zh-CN/r2.3.0/debug/dump.html#dump功能说明)。 56- [STABLE] 完善同步Dump功能,通过配置op_debug_mode字段使能溢出和异常Dump。 57- [STABLE] 增强同步Dump功能,通过配置stat_calc_mode字段可以使能device计算统计信息(默认在host计算),通过配置sample_mode字段可以进行采样Dump,提升Dump性能。 58- [STABLE] 增强异步Dump功能,支持保存complex64和complex128格式。 59 60#### Runtime 61 62- [STABLE] 支持静态图多级编译,配置为[mindspore.set_context(jit_config={"jit_level": "O0/O1/O2"})](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore/mindspore.set_context.html),默认值为空,框架根据产品类别自动选择优化级别,Altas训练产品为O2,其余产品均为O0。 63- [STABLE] 静态图O0/O1下支持通信计算多流并发执行。 64- [STABLE] 新增[内存管理接口](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore.hal.html#内存管理)。 65- [BETA] 内存池支持虚拟内存碎片整理,在静态图O0/O1下默认使能虚拟内存。 66 67#### Ascend 68 69- [STABLE] 提供昇腾平台上算子内存越界访问检测开关,用户可以通过设置 `mindspore.set_context(ascend_config={"op_debug_option": "oom"})`来检测昇腾平台上算子内部内存越界问题。 70- [BETA] 环境变量[MS_SIMULATION_LEVEL](https://www.mindspore.cn/docs/zh-CN/r2.3.0/note/env_var_list.html)在昇腾平台上新增支持图编译O0执行模式,并可支持编译性能和运行时内存分析。 71- [BETA] 昇腾平台支持通过AOT接入使用[AscendC自定义算子](https://www.mindspore.cn/tutorials/experts/zh-CN/r2.3.0/operation/op_custom_ascendc.html)。 72 73### API变更 74 75#### 新增API 76 77- [STABLE] 新增[mindspore.mint](https://www.mindspore.cn/docs/zh-CN/r2.3.0/api_python/mindspore.mint.html)API,提供了大量的functional、nn、优化器接口,API用法及功能等与业界主流用法一致,方便用户参考使用。mint接口当前是实验性接口,在图编译模式为O0和PyNative模式下性能比ops更优。当前暂不支持图下沉模式及CPU、GPU后端,后续会逐步完善。 78 79 | mindspore.mint | | | | 80 |:----|:----|:----|:----| 81 | mindspore.mint.eye |mindspore.mint.rand_like|mindspore.mint.isfinite|mindspore.mint.any| 82 | mindspore.mint.ones |mindspore.mint.rand|mindspore.mint.log|mindspore.mint.greater_equal| 83 | mindspore.mint.ones_like |mindspore.mint.gather|mindspore.mint.logical_and|mindspore.mint.all| 84 | mindspore.mint.zeros |mindspore.mint.permute|mindspore.mint.logical_not|mindspore.mint.mean| 85 | mindspore.mint.zeros_like |mindspore.mint.repeat_interleave|mindspore.mint.logical_or|mindspore.mint.prod| 86 | mindspore.mint.arange |mindspore.mint.abs|mindspore.mint.mul|mindspore.mint.sum| 87 | mindspore.mint.broadcast_to |mindspore.mint.add|mindspore.mint.neg|mindspore.mint.eq| 88 | mindspore.mint.cat |mindspore.mint.clamp|mindspore.mint.negative|mindspore.mint.ne| 89 | mindspore.mint.index_select |mindspore.mint.cumsum|mindspore.mint.pow|mindspore.mint.greater| 90 | mindspore.mint.max |mindspore.mint.atan2|mindspore.mint.reciprocal|mindspore.mint.gt| 91 | mindspore.mint.min |mindspore.mint.arctan2|mindspore.mint.rsqrt|mindspore.mint.isclose| 92 | mindspore.mint.scatter_add |mindspore.mint.ceil|mindspore.mint.sigmoid|mindspore.mint.le| 93 | mindspore.mint.narrow |mindspore.mint.unique|mindspore.mint.sin|mindspore.mint.less_equal| 94 | mindspore.mint.nonzero |mindspore.mint.div|mindspore.mint.sqrt|mindspore.mint.lt| 95 | mindspore.mint.normal |mindspore.mint.divide|mindspore.mint.square|mindspore.mint.maximum| 96 | mindspore.mint.tile |mindspore.mint.erf|mindspore.mint.sub|mindspore.mint.minimum| 97 | mindspore.mint.topk |mindspore.mint.erfinv|mindspore.mint.tanh|mindspore.mint.inverse| 98 | mindspore.mint.sort |mindspore.mint.exp|mindspore.mint.bmm|mindspore.mint.searchsorted| 99 | mindspore.mint.stack |mindspore.mint.floor|mindspore.mint.matmul|mindspore.mint.argmax| 100 | mindspore.mint.where |mindspore.mint.flip|mindspore.mint.split|mindspore.mint.cos| 101 | mindspore.mint.less ||| 102 103 | mindspore.mint.nn| 104 |:----| 105 | mindspore.mint.nn.Dropout | 106 | mindspore.mint.nn.Unfold | 107 | mindspore.mint.nn.Fold | 108 | mindspore.mint.nn.Linear| 109 | mindspore.mint.nn.BCEWithLogitsLoss | 110 111 | mindspore.mint.nn.functional|| 112 |:----|:----| 113 |mindspore.mint.nn.functional.batch_norm |mindspore.mint.nn.functional.group_norm| 114 |mindspore.mint.nn.functional.fold |mindspore.mint.nn.functional.layer_norm| 115 |mindspore.mint.nn.functional.max_pool2d |mindspore.mint.nn.functional.linear| 116 |mindspore.mint.nn.functional.binary_cross_entropy |mindspore.mint.nn.functional.unfold| 117 |mindspore.mint.nn.functional.sigmoid |mindspore.mint.nn.functional.one_hot| 118 |mindspore.mint.nn.functional.tanh |mindspore.mint.nn.functional.elu| 119 |mindspore.mint.nn.functional.binary_cross_entropy_with_logits |mindspore.mint.nn.functional.gelu| 120 |mindspore.mint.nn.functional.dropout|mindspore.mint.nn.functional.leaky_relu| 121 |mindspore.mint.nn.functional.embedding |mindspore.mint.nn.functional.silu| 122 |mindspore.mint.nn.functional.grid_sample|mindspore.mint.nn.functional.softplus| 123 |mindspore.mint.nn.functional.relu|mindspore.mint.nn.functional.softmax| 124 |mindspore.mint.nn.functional.pad|| 125 126 | mindspore.mint.optim | 127 |:----| 128 | mindspore.mint.optim.AdamW | 129 130 | mindspore.mint.linalg | 131 |:----| 132 | mindspore.mint.linalg.inv | 133 134### 非兼容性接口变更 135 136- 接口名称:性能数据采集接口 `Profiler` 137 138 变更内容:解析生成的性能数据文件进行了精简,将在导出性能数据后删除FRAMEWORK目录数据以及其他多余数据,仅保留profiler的交付件以及PROF_XXX目录下的原始性能数据,以节省空间。通过将 `data_simplification`参数配置为 `False`可关闭精简模式,与历史版本生成的性能数据文件保持一致。 139- 接口名称:Dump功能配置文件中的 `saved_data` 字段为 `"tensor"`。 140 141 变更内容:Dump落盘的文件名发生变更,`"/"`用 `"_"`代替,算子名称变为算子全局名称。 142 143 <table> 144 <tr> 145 <td style="text-align:center"> 原文件名 </td> <td style="text-align:center"> 2.3文件名 </td> 146 </tr> 147 <tr> 148 <td><pre> 149 文件名格式: 150 {op_type}.{op_name}.{task_id}.{stream_id}. 151 {timestamp}.{input_output_index}.{slot}.{format}.npy 152 </br> 153 示例: 154 Conv2D.Conv2D-op12.0.0.1623124369613540. 155 output.0.DefaultFormat.npy 156 </pre> 157 </td> 158 <td><pre> 159 文件名格式: 160 {op_type}.{op_name}.{task_id}.{stream_id}. 161 {timestamp}.{input_output_index}.{slot}.{format}.npy 162 </br> 163 示例: 164 Conv2D.Default_network-WithLossCell__backbone-AlexNet_conv3 165 -Conv2d_Conv2D-op12.0.0.1623124369613540.output.0.DefaultFormat.npy 166 </pre> 167 </td> 168 </tr> 169 </table> 170- 接口名称:Dump功能配置文件中的 `saved_data`字段为 `"statistic"`。 171 172 变更内容:原默认保存 `"max"`、`"min"`、`"avg"`、`"count"`、`"negative zero count"`、`"positive zero count"`、`"nan count"`、`"negative inf count"`、`"positive inf count"`、`"zero count"`、`md5`统计项,2.3变更为默认保存 `"max"`、`"min"`、`"l2norm"`统计项,可以通过配置 `statistic_category`自定义统计项。 173 174### 贡献者 175 176caifubi;candanzg;ccsszz;chaiyouheng;changzherui;chenfei_mindspore;chengbin;chengfeng27;Chong;dairenjie;DavidFFFan;DeshiChen;dingjinshan;douzhixing;emmmmtang;Erpim;fary86;fengyixing;fuhouyu;gaoyong10;GuoZhibin;guozhijian;halo;haozhang;hejianheng;Henry Shi;horcham;huandong1;huangbingjian;Jackson_Wong;jiangchenglin3;jiangshanfeng;jiangzhenguang;jiaorui;bantao;jiaxueyu;jijiarong;JuiceZ;jxl;kairui_kou;lanzhineng;LiangZhibo;lichen;limingqi107;linqingke;liubuyu;liujunzhu;liuluobin;liyan2022;liyejun;LLLRT;looop5;lujiale;luochao60;luoyang;lvxudong;machenggui;maning202007;Margaret_wangrui;master_2;mengyuanli;moran;Mrtutu;NaCN;nomindcarry;panzhihui;pengqi;qiuyufeng;qiuzhongya;Renyuan Zhang;shaoshengqi;Shawny;shen_haochen;shenhaojing;shenwei41;shij1anhan;shilishan;shiziyang;shunyuanhan;shuqian0;TAJh;tanghuikang;tan-wei-cheng;Thibaut;tianxiaodong;TronZhang;TuDouNi;VectorSL;wang_ziqi;wanghenchang;wangjie;weiyang;wudawei;wujiangming;wujueying;XianglongZeng;xiaotianci;xiaoxin_zhang;xiaoxiongzhu;xiaoyao;XinDu;xuxinglei;yangchen;yanghaoran;yanglong;yangruoqi713;yangzhenzhang;yangzishuo;Yanzhi_YI;yao_yf;yefeng;yide12;YijieChen;YingLai Lin;yuchaojie;YuJianfeng;zangqx;zhaiyukun;zhangminli;zhangqinghua;ZhangZGC;zhengxinQian;zhengzuohe;zhouyaqiang0;zhuguodong;zhupuxu;zichun_ye;zjun;zlq2020;ZPaC;zuochuanyong;zyli2020;阿琛;狄新凯;范吉斌;冯一航;胡彬;宦晓玲;黄勇;康伟;雷仪婧;李良灿;李林杰;刘崇鸣;刘力力;刘勇琪;刘子涵;吕浩宇;王禹程;熊攀;徐安越;徐永飞;俞涵;张王泽;张栩浩;郑裔;周莉莉;周先琪;朱家兴;邹文祥 177 178欢迎以任何形式对项目提供贡献! 179 180## MindSpore 2.3.0-rc2 Release Notes 181 182### 主要特性和增强 183 184#### AutoParallel 185 186- [STABLE] Transpose/Sub/Add/Mul/Div/ReLU/Softmax/Sigmoid算子支持配置Layout。 187- [STABLE] 集合通信精度会影响网络收敛,在接口mindspore.set_auto_parallel_context提供配置项[force_fp32_communication](https://www.mindspore.cn/docs/zh-CN/r2.3.0rc2/api_python/mindspore/mindspore.set_auto_parallel_context.html),设为True时可以强制将reduce类通信算子的通信类型转为float32。 188- [BETA] pipeline并行支持Interleave调度,优化micro batch大小受限场景下的模型性能。 189- [BETA] 优化pipeline并行场景下提高模型转换速度,支持单个stage单独转换。 190 191#### PyNative 192 193- [BETA] 动态图下支持[重计算](https://www.mindspore.cn/docs/zh-CN/r2.3.0rc2/api_python/mindspore/mindspore.recompute.html)功能。 194- [STABLE] 动态图下支持[register_hook](https://www.mindspore.cn/docs/zh-CN/r2.3.0rc2/api_python/mindspore/Tensor/mindspore.Tensor.register_hook.html#mindspore.Tensor.register_hook)功能。 195 196### API变更 197 198增加[动态组网](https://www.mindspore.cn/tutorials/experts/zh-CN/r2.3.0rc2/parallel/dynamic_cluster.html)场景下各类超时时间环境变量配置: 199 200- `MS_TOPO_TIMEOUT`: 集群组网阶段超时时间,单位:秒。 201- `MS_NODE_TIMEOUT`:节点心跳超时时间,单位:秒。 202- `MS_RECEIVE_MSG_TIMEOUT`:节点接收消息超时时间,单位:秒。 203 204新增环境变量 `MS_ENABLE_LCCL`,支持昇腾后端单机多卡场景下使用LCCL通信库。 205 206### 问题修复 207 208- [#I9CR96](https://gitee.com/mindspore/mindspore/issues/I9CR96) 修复在大规模集群下,动态组网启动方式的超时时间不足导致集群启动失败的问题。 209- [#I94AQQ](https://gitee.com/mindspore/mindspore/issues/I94AQQ) 修复ops.Addcdiv算子在图模式下输出shape有误问题。 210 211### 贡献者 212 213感谢以下人员做出的贡献: 214 215bantao,caifubi,changzherui,chenfei_mindspore,chenweifeng,dairenjie,dingjinshan,fangzehua,fanyi20,fary86,GuoZhibin,hanhuifeng,haozhang,hedongdong,Henry Shi,huandong1,huangbingjian,huoxinyou,jiangchenglin3,jiangshanfeng,jiaorui,jiaxueyu,jxl,kairui_kou,lichen,limingqi107,liuluobin,LLLRT,looop5,luochao60,luojianing,maning202007,NaCN,niyuxin94520,nomindcarry,shiziyang,tanghuikang,TronZhang,TuDouNi,VectorSL,wang_ziqi,wanghenchang,wudawei,XianglongZeng,xiaoxiongzhu,xiaoyao,yanghaoran,Yanzhi_YI,yao_yf,yide12,YijieChen,YingLai Lin,yuchaojie,YuJianfeng,zangqx,zhanghanLeo,ZhangZGC,zhengzuohe,zhouyaqiang0,zichun_ye,zjun,ZPaC,zyli2020,冯一航,李林杰,刘力力,王禹程,俞涵,张栩浩,朱家兴,邹文祥 216 217欢迎以任何形式对项目提供贡献! 218 219## MindSpore Lite 2.3.0-rc2 Release Notes 220 221### 主要特性和增强 222 223- [STABLE] 支持云侧转换工具所用的配置文件配置FlashAttention相关属性。 224- [STABLE] 支持在多张卡上进行内存共享。 225 226### 贡献者 227 228感谢以下人员做出的贡献: 229 230emmmmtang,熊攀 231 232欢迎以任何形式对项目提供贡献! 233 234## MindSpore 2.3.0-rc1 Release Notes 235 236### 主要特性及增强 237 238#### DataSet 239 240- [STABLE] MindRecord模块增加完整性校验、加解密功能,以此保护用户数据的完整性与安全性。 241- [STABLE] MindRecord接口变更:废弃FileWriter.open_and_set_header接口,因为其功能已内置到FilterWriter类,若使用旧版本代码将报错,删除此调用即可;FileWriter增加写入数据类型校验,以确保Schema定义的数据类型与真实数据类型匹配;Mindrecord组件下所有类方法去除返回值,若处理出错以异常方式提示用户。 242- [STABLE] 为以下数据增强增加Ascend处理后端支持:ResizedCrop、HorizontalFlip、VerticalFlip、Perspective、Crop、Pad、GaussianBlur、Affine。 243- [STABLE] 优化了模型迁移场景中数据迁移部分的指南,提供更多与第三方库框架对比的例子。 244- [STABLE] 优化了TFRecordDataset在多数据列场景下解析效率,提升解析性能 20%。 245 246#### PIJIT 247 248- [BETA] PIJit通过对Python字节码进行分析&调整、执行流进行图捕获&图优化,支持的Python代码做静态图方式执行,不支持的进行子图切分以动态图方式执行,自动地做到动静统一。用户可以通过@jit(mode="PIJit", jit_config={options:value})对函数进行装饰来开启PIJit。 249 250#### Inference 251 252- [DEMO] 大模型推理升级训推一体架构,实现脚本、分布式策略和运行时的统一,典型大模型训练到推理部署周期下降到天级,通过融合大算子降低推理时延,有效提升网络吞吐量。 253 254#### AutoParallel 255 256- [STABLE] 新增msrun启动方式,支持单指令拉起分布式任务。 257- [STABLE] 添加RankTable启动方式即将废弃的提示。 258- [STABLE] 图模式下消除冗余常量,提升编译性能和内存开销。 259- [STABLE] 子图场景优化器并行首个子图inline,使得流水并行下的一些计算和通信掩盖可以进行。 260- [STABLE] 通信信息导出,编译期间导出模型通信信息(通信域、通信量),输入给集群作为通信调度的依据。 261- [STABLE] 流水线并行推理优化,去除共享权重在stage间转发,提升执行性能;支持流水线并行推理结果自动广播,提升自回归推理易用性。 262- [STABLE] 算子级并行切分支持配置MatMul/Add/LayerNorm/GeLU/BiasAdd算子的切分时的设备排布与张量排布的映射关系。 263- [STABLE] 支持数据并行维度的梯度通信与反向计算互相掩盖功能。 264- [STABLE] 单卡模拟编译,用于模拟多卡分布式训练中某张卡的编译流程,辅助分析前后端各编译流程和内存占用。 265- [STABLE] ops.Tril算子支持切分,从而降低对单个device的内存与性能需求。 266- [BETA] 支持通信算子和计算算子融合,掩盖通信开销,提升网络性能。 267- [BETA] 故障恢复时,checkpoint加载与编译并行从而减少故障恢复时间。 268 269#### Runtime 270 271- [BETA] 支持O0/O1/O2多级编译,提升静态图调试调优能力。 272 273#### FrontEnd 274 275- [STABLE] 框架新增对bfloat16数据类型的支持,创建Tensor时可以指定dtype=mindspore.bfloat16。 276- [STABLE] 完善rewrite组件的语法支持能力,新增支持对类变量、函数、控制流等语法的解析。 277- [STABLE] 新增context配置项:debug_level,用户可以使用mindspore.set_context(debug_level=mindspore.DEBUG)来获取更多调试信息。 278 279#### Profiler 280 281- [BETA] 动态启停profiling,用户可以根据训练情况实时采集profiling 数据,减少采集数据量。 282- [BETA] Profiling通信算子耗时矩阵,用户通过分析通信算子耗时矩阵,找出集群通信性能瓶颈。 283- [BETA] 提高昇腾环境解析Profiling数据的性能。 284- [BETA] 支持离线解析Profiling生成的数据,用户可以先采集数据,然后根据需要再解析数据。 285- [BETA] 支持采集HBM、PCIe、l2_cache性能数据,丰富性能分析指标。 286 287#### Dump 288 289- [BETA] Dump保存的统计信息记录MD5值,用户可以通过MD5值确定张量值的微小差异。 290- [BETA] Dump支持bfloat16数据类型,支撑用户定位bfloat16类型的算子精度问题。 291 292#### PyNative 293 294- [STABLE] 重构动态图下单算子调用流程,优化前端算子下发粒度,提升动态图性能。 295 296#### Ascend 297 298- [BETA] 支持用户设置CANN的options配置项,配置项分为global和session二类,用户可以通过mindspore.set_context(ascend_config={"ge_options": {"global": {"global_option": "option_value"}, "session": {"session_option": "option_value"}}})进行配置。 299 300#### API变更 301 302- 新增 mindspore.hal接口,开放流、事件以及设备管理能力。 303- 新增 mindspore.multiprocessing 接口,提供了创建多进程的能力。 304 305#### 算子 306 307- [BETA] mindspore.ops.TopK当前支持第二个输入k为Int32类型的张量。 308 309### 问题修复 310 311- [#I92H93] 修复了昇腾平台下使用Print算子打印字符串对象时,Print算子报错Launch kernel failed的问题。 312- [#I8S6LY] 修复了昇腾平台图模式动态shape流程下,变长输入算子(如 AddN、Concat)报错RuntimeError: Attribute dyn_input_sizes of Default/AddN-op1 is [const vector]{}, of which size is less than 0的问题。 313- [#I9ADZS] 修复了故障恢复训练场景中,由于dataset恢复效率低导致网络训练出现数据超时的问题。 314 315### 贡献者 316 317感谢以下人员做出的贡献: 318 319AlanCheng511,AlanCheng712,bantao,Bingliang,BJ-WANG,Bokai Li,Brian-K,caifubi,cao1zhg,CaoWenbin,ccsszz,chaiyouheng,changzherui,chenfei_mindspore,chengbin,chengfeng27,chengxb7532,chenjianping,chenkang,chenweifeng,Chong,chuht,chujinjin,Cynthia叶,dairenjie,DavidFFFan,DeshiChen,douzhixing,emmmmtang,Erpim,fangzhou0329,fary86,fengxun,fengyixing,fuhouyu,gaoshuanglong,gaoyong10,GaoZhenlong,gengdongjie,gent1e,Greatpan,GTT,guoqi,guoxiaokang1,GuoZhibin,guozhijian,hangq,hanhuifeng,haozhang,hedongdong,hejianheng,Henry Shi,heyingjiao,HighCloud,Hongxing,huandong1,huangbingjian,HuangLe02,huangxinjing,huangziling,hujiahui8,huoxinyou,jiangchenglin3,jianghui58,jiangshanfeng,jiaorui,jiaxueyu,JichenZhao,jijiarong,jjfeing,JoeyLin,JuiceZ,jxl,kairui_kou,kate,KevinYi,kisnwang,lanzhineng,liangchenghui,LiangZhibo,lianliguang,lichen,ligan,lihao,limingqi107,ling,linqingke,liruyu,liubuyu,liuchao,liuchengji,liujunzhu,liuluobin,liutongtong9,liuzhuoran2333,liyan2022,liyejun,LLLRT,looop5,luochao60,luojianing,luoyang,LV,machenggui,maning202007,Margaret_wangrui,MaZhiming,mengyuanli,MooYeh,moran,Mrtutu,NaCN,nomindcarry,panshaowu,panzhihui,PingqiLi,qinzheng,qiuzhongya,Rice,shaojunsong,Shawny,shenwei41,shenyaxin,shunyuanhan,silver,Songyuanwei,tangdezhi_123,tanghuikang,tan-wei-cheng,TingWang,TronZhang,TuDouNi,VectorSL,WANG Cong,wang_ziqi,wanghenchang,wangpingan,wangshaocong,wangtongyu6,weiyang,WinXPQAQ,wtcheng,wudawei,wujiangming,wujueying,wuweikang,wwwbby,XianglongZeng,xiaosh,xiaotianci,xiaoxin_zhang,xiaoxiongzhu,xiaoyao,XinDu,xingzhongfan,yanghaoran,yangluhang,yangruoqi713,yangzhenzhang,yangzishuo,yanjiaming,Yanzhi_YI,yao_yf,yefeng,yeyunpeng2020,yide12,YijieChen,YingLai Lin,YingtongHu,youshu,yuchaojie,YuJianfeng,zangqx,zby,zhaiyukun,zhangdanyang,zhanghaibo,zhanghanLeo,zhangminli,zhangqinghua,zhangyanhui,zhangyifan,zhangyinxia,zhangyongxian,ZhangZGC,zhanzhan,zhaoting,zhengyafei,zhengzuohe,ZhihaoLi,zhouyaqiang0,zhuguodong,zhumingming,zhupuxu,zichun_ye,zjun,zlq2020,ZPaC,zuochuanyong,zyli2020,陈宇,代宇鑫,狄新凯,范吉斌,冯一航,胡彬,宦晓玲,黄勇,康伟,李良灿,李林杰,刘崇鸣,刘力力,刘勇琪,吕浩宇,没有窗户的小巷,王禹程,吴蕴溥,熊攀,徐安越,徐永飞,许哲纶,俞涵,张峻源,张树仁,张王泽,张栩浩,郑裔,周莉莉,周先琪,朱家兴,邹文祥 320 321欢迎以任何形式对项目提供贡献! 322 323## MindSpore 2.2.13 Release Notes 324 325### API变更 326 327增加动态组网场景下各类超时时间环境变量配置: 328 329- `MS_TOPO_TIMEOUT`: 集群组网阶段超时时间,单位:秒。 330- `MS_CLUSTER_RETRY_NUM`:集群组网阶段节点重试注册次数。 331- `MS_NODE_TIMEOUT`:节点心跳超时时间,单位:秒。 332- `MS_RECEIVE_MSG_TIMEOUT`:节点接收消息超时时间,单位:秒。 333 334### 问题修复 335 336- [#I9CR96] 修复在大规模集群下,动态组网启动方式的超时时间不足导致集群启动失败的问题。 337 338### 贡献者 339 340感谢以下人员做出的贡献: 341 342ZPaC, limingqi107, lizhenyu, jiangshanfeng 343 344欢迎以任何形式对项目提供贡献! 345 346## MindSpore 2.2.12 Release Notes 347 348### 主要特性及增强 349 350- [STABLE] 针对网络参数以fp32初始化以及开启优化器并行的场景,降低Cast算子数目。 351- [STABLE] 增加对静默故障的检测和处理能力;静默故障会导致训练过程异常,该特性帮助用户避免或大幅降低因静默故障导致的集群停机巡检进行故障定位带来的损失。 352 353### 问题修复 354 355- [#I97D1L] 修复 ReduceLROnPlateau、LRScheduler、CosineAnnealingWarmRestarts动态学习率相关接口样例错误。 356- [#I970HV] 修复多卡之间的allgather/reducescatter不保序问题。 357- [#I99JPI] 修复checkpoint在模糊匹配场景下加载类型为bfloat16 parameter的 bug。 358 359### 贡献者 360 361感谢以下人员做出的贡献: 362 363yao_yf, YijieChen, 冯一航, yuchaojie, 李良灿, YuJianfeng, huangxinjing, GuoZhibin, looop5 364 365欢迎以任何形式对项目提供贡献! 366 367## MindSpore 2.2.11 Release Notes 368 369### 主要特性及增强 370 371#### scipy 372 373- [STABLE] 新增scipy模块API mindspore.scipy.optimize.linear_sum_assignment,用于解决线性和分配问题,它可以基于一个给定的成本矩阵,找到一个成本最低的分配方案。 374 375### 问题修复 376 377- [#I8JVRU] 修复bernoulli随机数算子在GPU上跑两次的结果出现概率性一致的问题。 378- [#I8OC32] 修复MatrixSetDiagV3算子未校验异常输入,导致segmentation fault问题。 379 380### 贡献者 381 382感谢以下人员做出的贡献: 383 384fary86, wanghenchang, haozhang, mengyuanli, emmmmtang, luoyang, zhupuxu, zhangyongxian, liuluobin, LLLRT, TuDouNi, hujiahui8, wangtongyu6, ligan, zhuguodong, yanghaoran, YingtongHu, liyejun, zjun, 徐永飞, chuht, 张树仁, 徐安越, DeshiChen, shenyaxin, liujunzhu, shunyuanhan, yuchaojie, yao_yf, 没有窗户的小巷, yeyunpeng2020, weiyang, KevinYi, hedongdong, zhouyaqiang0, Margaret_wangrui, zhanghaibo, moran, huangziling, 朱家兴, GuoZhibin, 李良灿, jiaxueyu, gaoyong10, Greatpan, 宦晓玲, melody, 俞涵, jiangshanfeng, XinDu, ling, caifubi, zhangyinxia, gengdongjie, Erpim, XianglongZeng, zhangminli, fengyixing, 冯一航, 黄勇, panzhihui, 胡彬, linqingke, wangshaocong 385 386欢迎以任何形式对项目提供贡献! 387 388## MindSpore Lite 2.2.11 Release Notes 389 390### 问题修复 391 392- [#I8TPLY] 修复 SSD MobileNetV2 FPN 网络在Atlas 推理系列产品(配置 Ascend 310P AI 处理器)平台上的推理失败问题。 393 394### 贡献者 395 396感谢以下人员做出的贡献: 397 398wangtongyu6, zhuguodong, 徐永飞, 徐安越, yeyunpeng2020, moran, XinDu, gengdongjie. 399 400欢迎以任何形式对项目提供贡献! 401 402## MindSpore 2.2.10 Release Notes 403 404### 主要特性及增强 405 406#### 算子 407 408- [STABLE] FastGelu、BatchMatMul、AllReduce、AllGather、Broadcast、ReduceScatter算子支持bfloat16数据类型 409- [STABLE] AllGather支持uint8数据类型 410 411### 问题修复 412 413- [#I8ALW3]修复Faster R-CNN、DeepTextMask、RCNN-ResNet50等网络在Ascend 910上8卡训练RandomChoiceWithMask算子报错问题 414- [#I8LKG7]修复UNet-2D在Ascend 910 1卡、8卡图编译报错问题 415- [#I8KU3X]修复CRNN-ResNet34在Ascend 910 1卡、8卡PyNative模式下训练进程卡住问题 416- [#I8KTHH]修复在Ascend 910 8卡上使能enable_parallel_optimizer=True,不使用allreduce分组融合时,BERT网络训练报错问题 417 418### 贡献者 419 420感谢以下人员做出的贡献: 421 422李林杰, TuDouNi, chengxb7532, Henry Shi, rms-infer-type, 朱家兴, zhouyaqiang0, tanghuikang, gaoyong10, gengdongjie, yao_yf, hujiahui8, hanhuifeng, shenyaxin, KevinYi, 冯一航, chengfeng27, JuiceZ, zhangyanhui, jijiarong, xiaoxiongzhu, 没有窗户的小巷, ling, liyan2022, haozhang, zangqx, xiaoyao, liujunzhu, 胡彬, panzhihui, wangshaocong, linqingke, jianghui58, qiuzhongya, yangruoqi713, zhangminli, moran, 王禹程, shaojunsong, wangtongyu6, zhupuxu, luoyang, 徐安越, qinzheng, caifubi, 徐永飞, chenkang, youshu, XinDu, liubuyu, jxl, yeyunpeng2020, huoxinyou, yefeng, jiaorui, wangpingan, cao1zhg, zjun, zyli2020, yanjiaming, Cynthia叶, 胡安东, 李良灿, liruyu, liuluobin, lihao, huangbingjian, YijieChen, jjfeing, looop5, 刘力力, xiaoxin_zhang, yangluhang, chenweifeng, jiangshanfeng, zichun_ye, 陈宇, NaCN, ligan, YingLai Lin, huangziling, chenjianping, DeshiChen, chengbin, kairui_kou, ccsszz, yanghaoran, zhangdanyang, Yanzhi_YI, zhengzuohe, hangq, TronZhang, wanghenchang, HighCloud, 吕浩宇, VectorSL, ZPaC, mengyuanli, maning202007, 刘勇琪, r1chardf1d0, fary86, 刘崇鸣, yuchaojie, douzhixing, fengyixing 423 424欢迎以任何形式对项目提供贡献! 425 426## MindSpore Lite 2.2.10 Release Notes 427 428### 问题修复 429 430- [#I8K7CC]优化get_model_info接口传入非str字段的报错 431 432### 贡献者 433 434感谢以下人员做出的贡献: 435 436gengdongjie, zhangyanhui, xiaoxiongzhu, wangshaocong, jianghui58, moran, wangtongyu6, 徐安越, qinzheng, 徐永飞, youshu, XinDu, yeyunpeng2020, yefeng, wangpingan, zjun, 胡安东, 刘力力, 陈宇, chenjianping, kairui_kou, zhangdanyang, hangq, mengyuanli, 刘崇鸣 437 438欢迎以任何形式对项目提供贡献! 439 440## MindSpore 2.2.1 Release Notes 441 442### Bug Fixes 443 444- [#I7R3R5] 修复昇腾平台ResNet-50网络精度劣化问题。 445- [#I8A9RH] 修复昇腾平台DBNet(ResNet-50)网络精度劣化问题。 446- [#I8B8IW] 修复多维Tensor赋值越界导致段错误的问题。 447- [#I8J0F4] 修复多维Tensor扩展维度在动态图执行失败的问题。 448- [#I87P3P] 修复昇腾平台二次训练编译缓存加载失败的问题。 449- [#I86GP9] 修复昇腾平台UNet3D网络推理精度劣化问题。 450- [#I89B4K] 修复Windows平台动态图动态rank执行卡住的问题。 451- [#I8CX0C] 修复昇腾平台上动态图混合精度模式下偶现失败的问题。 452- [#I8BGCF] 修复昇腾平台AIRNet网络动态图模式下执行出现段错误的问题。 453- [#I8L5DS] 修复昇腾平台ResNet-50图像分割网络动态图执行慢的问题。 454 455### 贡献者 456 457感谢以下人员做出的贡献: 458 459yufan, dingcheng, lvzhangcheng, zhunaipan, fangwenyi, weiyang, changzherui, chujinjin, zangqingxiang, yuchaojie, wuweikang, tanghuikang, xiaoyao, huangbinjian, zhoupeichen, chenfei_mindspore, hedongdong, wangnan, zhengzuohe, yanghaoran, zouliqin, luoyang, liuchongmin, lujiale, machenggui, wangcong, lixiangyi, wangting, huangyong 460 461欢迎以任何形式对项目提供贡献! 462 463## MindSpore Lite 2.2.1 Release Notes 464 465### Bug Fixes 466 467- [#I88055] 修复MindSpore Lite推理gridsample算子format设置错误的问题。 468- [#I8D80Y] 修复MindSpore Lite推理单算子调用流程资源释放异常的问题。 469 470### 贡献者 471 472感谢以下人员做出的贡献: 473 474zhanghaibo, wangsiyuan, yefeng, wangshaocong, chenjianping 475 476欢迎以任何形式对项目提供贡献! 477 478## MindSpore 2.2.0 Release Notes 479 480### 主要特性和增强 481 482#### DataSet 483 484- [STABLE] 数据操作map/batch的`row_size`参数扩展支持传入list,代表[输入共享内存, 输出共享内存],以便在多进程模式时灵活控制共享内存的大小。 485- [STABLE] 为官网API文档页面mindspore.dataset、mindspore.dataset.transforms、mindspore.mindrecord的所有API补充完善样例,方便用户参考。 486- [STABLE] ConcatDataset支持全局采样能力,即使用concat操作组合多来源数据后,可以对数据进行全局随机采样以增强数据多样性。 487- [STABLE] 使用model.train接口训练时,支持通过TimeMonitor(.., data_time=True)实时监控数据处理性能。 488- [STABLE] 引入jemalloc库,解决在极端场景下,因内存碎片回收不及时导致内存缓慢上涨问题。 489 490#### FrontEnd 491 492- [STABLE] 支持添加@lazy_inline装饰器来标注Cell生成的子图延迟inline,从而有效提升编译性能。 493- [STABLE] 新增CellDict数据结构,支持构建Dict类型的Cell对象,完善构建网络能力。 494- [STABLE] 混合精度训练的功能优化,支持通过rewrite自动改写python脚本实现混合精度策略,支持函数、分支语句等多种语法自动解析。 495- [STABLE] 动态学习率功能优化,新增MultiStepLR等API;get_lr方法与global_step解耦,扩展优化器模块功能。 496- [STABLE] 优化API代码样例、API差异表以及高阶函数使用教程。 497 498#### 算子 499 500- [STABLE] 新增算子原语`mindspore.ops.Dense`。 501- [STABLE] 新增随机数算子状态管理功能,使随机数算子可以保存随机数状态,并在模型并行、重计算等场景稳定复现。当前仅支持CPU/GPU平台,涉及的随机数算子包括:`mindspore.ops.Multinomial`、`mindspore.ops.MultinomialWithReplacement`、`mindspore.ops.ParameterizedTruncatedNormal`、`mindspore.ops.StandardLaplace`、`mindspore.ops.StandardLaplace`、`mindspore.ops.Uniform`、`mindspore.ops.UniformInt`、`mindspore.ops.UniformReal`、`mindspore.ops.UniformInt`、`mindspore.ops.Dropout`、`mindspore.ops.RandomChoiceWithMask`、`mindspore.ops.RandomCategorical`、`mindspore.ops.RandomShuffle`、`mindspore.ops.RandamGamma`、`mindspore.ops.RandomPoisson`、`mindspore.ops.TruncatedNormal`。 502- [STABLE] 当GPU算子遇到非法输入场景,支持在算子的CUDA核函数中异步打印报错日志到Host侧,并中断当前CUDA Stream的执行,提高用户算子问题的定位效率。 503 504#### PyNative 505 506- [STABLE] PyNative模式下支持View机制。 507- [STABLE] PyNative模式下功能增强:sens支持dict类型输入。 508 509#### Ascend 510 511- [STABLE] 支持用户可配置算子高精度/高性能模式,用户可以通过`mindspore.set_context(ascend_config={"op_precision_mode": "/path/to/op_precision_config_file"})`对部分TBE算子配置高精度/高性能模式。 512- [BETA] 支持用户可配置fp16进fp32出的算子,用户可以通过`mindspore.set_context(ascend_config={"precision_mode": "force_fp32"})`对TBE Cube算子配置fp16进fp32出。 513- [BETA] 去除jit level "O3"与GE流程强绑定,用户在执行GE流程时无需再设置`jit_level="O3"`。 514 515#### Parallel 516 517- [STABLE] 支持半自动/全自动模式下,非流水线并行场景的梯度累加特性,用户可以通过`net = GradAccumulationCell(net, micro_size)`方式,对网络使能梯度累加。梯度累加特性同样支持LazyInline编译加速。 518 519#### 推理 520 521自2.2版本起MindSpore主发布包不再提供配套310的推理接口使能,如需使用请切换安装MindSpore Lite发布包或下载MindSpore2.0之前的版本。MindSpore lite的安装部署与用法详见 <https://www.mindspore.cn/lite>。昇腾(Ascend)310是面向边缘场景的高能效高集成度AI处理器,支持对MindIR格式模型进行推理。原先MindSpore提供了两种在Ascend 310硬件上的推理使能用法: 522 5231. 由MindSpore主发布包提供配套Ascend 310的版本,支持C++推理接口。 5242. 由MindSpore Lite发布包提供配套Ascend的版本,支持C++/Java两种语言进行推理。 525 526这两种方案提供的C++ API基本一致,后续不再构建和维护两套接口,而是归一使用MindSpore Lite。原有基于MindSpore主发布包构建的310推理业务,可以少量修改切换到MindSpore Lite,详见 <https://www.mindspore.cn/docs/zh-CN/master/faq/inference.html>。 527 528### Bug fixes 529 530- [I7SDA0] 修复了昇腾平台上CRNN网络精度劣化的问题。 531- [I7T4QK] 修复了昇腾平台上wgan网络推理精度劣化问题。 532- [I7TJ8Z] 修复了昇腾平台上lgtm网络推理精度劣化问题。 533- [I7M58O] 修复了昇腾平台上ASR-dynamic网络训练core-dump的问题 534- [I7L6B6] 修复了dataset多进程模式时,子进程在某些场景不退出的问题。 535- [I7L7AE] 修复了dataset处理中包含repeat操作,且dataset.batch中使用动态batch时,batchinfo.get_epoch_num()计算不正确的问题。 536- [I7UY7G] 修复OBSMindDataset中对于文件权限修改的异常的报错。 537 538### 贡献者 539 540感谢以下人员做出的贡献: 541bantao, Bingliang, BJ-WANG, Brian-K, caifubi, ccsszz, changzherui, chenfei_mindspore, chengfeng27, chenhaozhe, chenjianping, chenkang, chenweifeng, chuht, chujinjin, CShu0507, Cynthia叶, DeshiChen, douzhixing, Erpim, Etienne, fary86, fengxun, fengyixing, gaoshuanglong, Gaoxiong, gaoyong10, GaoZhenlong, Greatpan, GuoZhibin, guozhijian, hangq, hanhuifeng, haozhang, hedongdong, Henry Shi, HighCloud, Hongxing, huangbingjian, huanghui, huangxinjing, huangziling, hujiahui8, huoxinyou, HWalkingMan, jianghui58, jiangshanfeng, jiaorui, jijiarong, jjfeing, JuiceZ, jxl, KevinYi, kisnwang, KXiong, lanzhineng, Li Qingguo, LiangZhibo, lianliguang, ligan, lihao, Lihoon, limingqi107, ling, linqingke, liruyu, liubuyu, liuchao, liujunzhu, liuluobin, liupeng303, liutongtong9, liyan2022, liyejun, looop5, luochao60, luojianing, luoyang, machenggui, maning202007, Margaret_wangrui, MaZhiming, mengyuanli, moran, NaCN, nomindcarry, panshaowu, panzhihui, qinzheng, qiuzhongya, r1chardf1d0, shaojunsong, shenwei41, shenyaxin, shenzhangyi, Shira Zaloshinski, shunyuanhan, tangdezhi_123, tanghuikang, tan-wei-cheng, tan-wei-cheng-3260, TronZhang, TuDouNi, VectorSL, wang_ziqi, wanghenchang, wangpingan, wangshaocong, wangtongyu6, wtcheng, wujueying, XianglongZeng, xiaotianci, xiaoxin_zhang, xiaoxiongzhu, xiaoyao, xiaoyuanyuan, XinDu, xujinliang, xupan, yanghaoran, yangluhang, yangruoqi713, yangsijia, yangzhenzhang, yangzishuo, yanjiaming, Yanzhi_YI, yao_yf, yefeng, yeyunpeng2020, yide12, YijieChen, YingLai Lin, YingtongHu, yonibaehr, youshu, yuchaojie, YuJianfeng, zangqx, zhaizhiqiang, zhangbuxue, zhangchunlei, zhangdanyang, zhangdong, zhanghaibo, zhangminli, zhangqi, zhangqinghua, zhangyanhui, zhangyifan, zhangyongxian, zhangzhen, zhangzheng, zhanzhan, zhengzuohe, ZhihaoLi, zhoufeng, zhouyaqiang0, zhuguodong, zhupuxu, zichun_ye, zjun, ZPaC, zuochuanyong, zyli2020, 陈宇, 程超, 范吉斌, 冯浩, 冯一航, 胡彬, 宦晓玲, 黄勇, 雷元哲, 黎冠新, 李良灿, 李林杰, 刘崇鸣, 刘力力, 刘思铭, 刘勇琪, 吕浩宇, 没有窗户的小巷, 沈竞兴, 王禹程, 王振邦, 徐安越, 徐永飞, 俞涵, 张澍坤, 周超, 朱家兴 542 543欢迎以任何形式对项目提供贡献! 544 545## MindSpore Lite 2.2.0 Release Notes 546 547### 主要特性和增强 548 549#### 支持FlashAttention算子融合 550 551- [STABLE] 在Ascend 910系列硬件上,支持LLAMA、stable diffusion系列模型的FlashAttention大算子融合。 552 553## MindSpore 2.1.1 Release Notes 554 555### Bug fixes 556 557- [I7Q9RX] 昇腾平台支持不同硬件类型自适应识别。 558- [I7SDA0] 修复了昇腾平台上CRNN网络精度劣化的问题。 559- [I7T4QK] 修复了昇腾平台上wgan网络推理精度劣化问题。 560- [I7TJ8Z] 修复了昇腾平台上lgtm网络推理精度劣化问题。 561 562### 贡献者 563 564感谢以下人员做出的贡献: 565 566changzherui, chenfei_mindspore, chenjianping, chenkang, chenweifeng, chujinjin, fangwenyi, GuoZhibin, guozhijian, hangq, hanhuifeng, haozhang, hedongdong, 尤澍, zhoufeng, 代宇鑫 567 568欢迎以任何形式对项目提供贡献! 569 570## MindSpore Lite 2.1.1 Release Notes 571 572### Major Features and Improvements 573 574- [STABLE] MindSpore Lite Cloud Inference adds support for Python 3.8 and Python 3.9 575 576## MindSpore 2.1.0 Release Notes 577 578### 主要特性和增强 579 580#### FrontEnd 581 582- [BETA] JIT Fallback支持变量场景:静态图模式下,支持返回Dict类型和Scalar类型,支持对非Parameter类型对象进行属性设置, 支持List的部分就地修改操作,完善支持NumPy等第三方库,支持用户自定义类的相关操作,支持Python基础运算符、内置函数使用更多数据类型,兼容控制流、副作用、自动微分等功能。具体用法请参考[静态图语法支持](https://www.mindspore.cn/docs/zh-CN/r2.1/note/static_graph_syntax_support.html)。 583- [BETA] 静态图模式下,优化控制流场景中使用未定义变量的报错。使用if、while、for控制流分支内定义的变量,需在控制流之前初始化定义变量。 584- [STABLE] 新增ReWrite功能,支持基于自定义规则修改网络结构,提供对多个网络进行批量修改的能力。 585- [BETA] 新增optim_ex优化器模块,扩展现有功能,支持全量优化器参数分组策略的设置、支持运行中通过赋值的方式修改参数等功能。 586- [STABLE] 优化MindSpore与PyTorch的API映射表,详细介绍API在功能、参数、输入、输出和特定场景等方面的差异。 587 588#### PyNative 589 590- 优化动态图模式下动态shape场景的性能。 591 592#### DataSet 593 594- [STABLE] 优化MindRecord数据文件的内存结构,加载百TB级别数据训练可降低60%内存占用。 595- [STABLE] 支持单线程执行数据处理Pipeline,以便用户在数据Pipeline中添加代码对数据处理功能进行调试。 596- [STABLE] 优化了TFRecordDataset的性能,对数据集加载性能提升60%+;优化了batch的性能,对于batch数较大的使用场景性能提升30%。 597- [STABLE] 优化API文档[mindspore.dataset](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore.dataset.html) 和 [mindspore.dataset.transforms](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore.dataset.transforms.html)的Example示例,并新增了四篇样例库展示数据增强的效果,分别是:[使用数据Pipeline加载 & 处理数据集](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore.dataset.html#%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86pipeline%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B)、[视觉变换样例库](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore.dataset.transforms.html#%E6%A0%B7%E4%BE%8B%E5%BA%93)、[文本变换样例库](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore.dataset.transforms.html#%E6%A0%B7%E4%BE%8B%E5%BA%93-1)、[音频变换样例库](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore.dataset.transforms.html#%E6%A0%B7%E4%BE%8B%E5%BA%93-2) 598 599#### AutoParallel 600 601- [STABLE] 支持训练过程将参数或者中间结果offload到CPU或NVMe,用户通过配置context开启自动offload功能,扩大可训练模型规模。 602 603- [STABLE] 自动并行能力增强: 604 605 1. 典型网络自动策略性能不低于默认配置的90%; 606 607 2. 支持3D混合并行训练:自动算子级策略生成结合手动配置pipeline切分。 608 609#### Runtime 610 611- [STABLE] 升级OpenMPI版本至4.1.4。 612- [STABLE] 升级NCCL版本至2.16.5。 613- [STABLE] 动态组网场景下单节点内多卡rank连续分配。 614- [STABLE] 动态组网场景下用户无需在脚本中对Scheduler角色进行适配,Scheduler与Worker脚本可保持完全一致。 615 616#### Ascend 617 618- [STABLE] 算子执行发生AIC Error时日志支持输出辅助AIC Error定位的维测信息,信息包括算子task名字、stream id、输入输出及workspace地址等。 619- [STABLE] 针对算子输出为空Tensor的场景为CANN算子提供默认的处理机制,即跳过其算子执行。 620- [STABLE] 在图模式网络模型执行失败时补充相关定位信息,即在rank_${id}/exec_order/目录下产生csv文件,记录每个task的task id和stream id。 621 622#### Profiler 623 624- [STABLE] Profiler支持收集Host侧各个阶段耗时数据。 625- [BETA] Profiler支持收集Host侧各个阶段内存数据。 626- [BETA] Profiler支持收集数据处理算子耗时。 627 628### API变更 629 630- `mindspore.dataset.GraphData`、`mindspore.dataset.Graph`、`mindspore.dataset.InMemoryGraphDataset`、`mindspore.dataset.ArgoverseDataset`不再进行功能演进并废弃。使用[MindSpore Graph Learning](https://gitee.com/mindspore/graphlearning)进行相关功能替换。对于Model仓库使用到此API的相关网络进行替换时,GCN请参考[Graph Learning GCN](https://gitee.com/mindspore/graphlearning/tree/master/model_zoo/gcn),GAT请参考[Graph Learning GAT](https://gitee.com/mindspore/graphlearning/tree/master/model_zoo/gat)。 631- `mindspore.set_context`新增`jit_syntax_level`选项,用于设置JIT语法支持级别,请参考[set_context](https://www.mindspore.cn/docs/zh-CN/r2.1/api_python/mindspore/mindspore.set_context.html)。 632- 变更了`model.infer_predict_layout`接口,接口新增参数skip_backend_compile,默认值为False。当用户希望跳过后端编译流程获取参数切分策略时可选择设置为True。 633 634#### 算子 635 636- 新增算子原语`mindspore.ops.ApplyAdamWithAmsgradV2`,推荐通过接口`mindspore.nn.Adam`调用。 637- 新增算子原语`mindspore.ops.UpsampleTrilinear3D`,推荐通过接口`mindspore.ops.interpolate`调用。 638- 新增算子原语`mindspore.ops.UpsampleNearest3D`,推荐通过接口`mindspore.ops.interpolate`调用。 639 640#### 接口弃用 641 642- 弃用算子原语`mindspore.ops.ScatterNonAliasingAdd`,推荐使用算子原语`mindspore.ops.TensorScatterAdd`替换。 643 644#### 非兼容性接口变更 645 646- 接口名称:`mindspore.nn.Dense`、`mindspore.nn.Conv1d`、`mindspore.nn.Conv1dTranspose`、`mindspore.nn.Conv2d`、`mindspore.nn.Conv2dTranspose`、`mindspore.nn.Conv3d`、`mindspore.nn.Conv3dTranspose` 647 648 变更内容:变更了初始化参数策略。weight_init默认值由"normal"改为None,bias_init默认值由"zeros"改为None。 649 650 说明:权重默认初始化方法由使用"normal"改为在内部使用HeUniform初始化。偏差默认初始化方法由"zeros"改为在内部使用Uniform初始化。 651 652 <table> 653 <tr> 654 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.1接口 </td> 655 </tr> 656 <tr> 657 <td><pre> 658 mindspore.nn.Dense(in_channels, 659 out_channels, 660 weight_init='normal', 661 bias_init='zeros', 662 has_bias=True, 663 activation=None) 664 </pre> 665 </td> 666 <td><pre> 667 mindspore.nn.Dense(in_channels, 668 out_channels, 669 weight_init=None, 670 bias_init=None, 671 has_bias=True, 672 activation=None) 673 </pre> 674 </td> 675 </tr> 676 <tr> 677 <td><pre> 678 mindspore.nn.Conv1d(in_channels, 679 out_channels, 680 kernel_size, 681 stride=1, 682 pad_mode='same', 683 padding=0, 684 dilation=1, 685 group=1, 686 has_bias=False, 687 weight_init='normal', 688 bias_init='zeros') 689 </pre> 690 </td> 691 <td><pre> 692 mindspore.nn.Conv1d(in_channels, 693 out_channels, 694 kernel_size, 695 stride=1, 696 pad_mode='same', 697 padding=0, 698 dilation=1, 699 group=1, 700 has_bias=False, 701 weight_init=None, 702 bias_init=None) 703 </pre> 704 </td> 705 </tr> 706 <tr> 707 <td><pre> 708 mindspore.nn.Conv1dTranspose(in_channels, 709 out_channels, 710 kernel_size, 711 stride=1, 712 pad_mode='same', 713 padding=0, 714 dilation=1, 715 group=1, 716 has_bias=False, 717 weight_init='normal', 718 bias_init='zeros') 719 </pre> 720 </td> 721 <td><pre> 722 mindspore.nn.Conv1dTranspose(in_channels, 723 out_channels, 724 kernel_size, 725 stride=1, 726 pad_mode='same', 727 padding=0, 728 dilation=1, 729 group=1, 730 has_bias=False, 731 weight_init=None, 732 bias_init=None) 733 </pre> 734 </td> 735 </tr> 736 <tr> 737 <td><pre> 738 mindspore.nn.Conv2d(in_channels, 739 out_channels, kernel_size, 740 stride=1, 741 pad_mode='same', 742 padding=0, 743 dilation=1, 744 group=1, 745 has_bias=False, 746 weight_init='normal', 747 bias_init='zeros', 748 data_format='NCHW') 749 </pre> 750 </td> 751 <td><pre> 752 mindspore.nn.Conv2d(in_channels, 753 out_channels, 754 kernel_size, 755 stride=1, 756 pad_mode='same', 757 padding=0, 758 dilation=1, 759 group=1, 760 has_bias=False, 761 weight_init=None, 762 bias_init=None, 763 data_format='NCHW') 764 </pre> 765 </td> 766 </tr> 767 <tr> 768 <td><pre> 769 mindspore.nn.Conv2dTranspose(in_channels, 770 out_channels, 771 kernel_size, 772 stride=1, 773 pad_mode='same', 774 padding=0, 775 output_padding=0, 776 dilation=1, 777 group=1, 778 has_bias=False, 779 weight_init='normal', 780 bias_init='zeros') 781 </pre> 782 </td> 783 <td><pre> 784 mindspore.nn.Conv2dTranspose(in_channels, 785 out_channels, 786 kernel_size, 787 stride=1, 788 pad_mode='same', 789 padding=0, 790 output_padding=0, 791 dilation=1, 792 group=1, 793 has_bias=False, 794 weight_init=None, 795 bias_init=None) 796 </pre> 797 </td> 798 </tr> 799 <tr> 800 <td><pre> 801 mindspore.nn.Conv3d(in_channels, 802 out_channels, 803 kernel_size, 804 stride=1, 805 pad_mode='same', 806 padding=0, 807 dilation=1, 808 group=1, 809 has_bias=False, 810 weight_init='normal', 811 bias_init='zeros', 812 data_format='NCDHW') 813 </pre> 814 </td> 815 <td><pre> 816 mindspore.nn.Conv3d(in_channels, 817 out_channels, 818 kernel_size, 819 stride=1, 820 pad_mode='same', 821 padding=0, 822 dilation=1, 823 group=1, 824 has_bias=False, 825 weight_init=None, 826 bias_init=None, 827 data_format='NCDHW') 828 </pre> 829 </td> 830 </tr> 831 <tr> 832 <td><pre> 833 mindspore.nn.Conv3dTranspose(in_channels, 834 out_channels, 835 kernel_size, 836 stride=1, 837 pad_mode='same', 838 padding=0, 839 dilation=1, 840 group=1, 841 output_padding=0, 842 has_bias=False, 843 weight_init='normal', 844 bias_init='zeros', 845 data_format='NCDHW') 846 </pre> 847 </td> 848 <td><pre> 849 mindspore.nn.Conv3dTranspose(in_channels, 850 out_channels, 851 kernel_size, 852 stride=1, 853 pad_mode='same', 854 padding=0, 855 dilation=1, 856 group=1, 857 output_padding=0, 858 has_bias=False, 859 weight_init=None, 860 bias_init=None, 861 data_format='NCDHW') 862 </pre> 863 </td> 864 </tr> 865 </table> 866 867### Bug fixes 868 869- [I6TKLW] 修复了昇腾平台上MobileNetV2网络性能劣化的问题。 870- [I7CP5H] 修复了昇腾平台上ASR网络训练失败的问题。 871- [I7I3EZ] 修复了由于Pillow 10.0.0版本变更枚举接口导致run_check()失败的问题。若在低版本MindSpore遇到,则安装10.0.0以下版本Pillow避免此问题。 872- [I7IZ8K] 修复了assignsub接口在PyNative下的精度问题。 873- [I7HGY0] 修复了函数式编程,在PyNative模式数据下沉场景,loss不收敛的问题。 874- [I7J4N3] 修复了Profiler动态Shape模式下生成Step Trace失败的问题。 875- [I7J4N3] 修复了MindInsight并行策略视图展示暂无数据的问题。 876- [I79YY4] 修复了PyNative模式下高阶微分时的SiLU算子错误。 877- [I6NQJQ] 修复了PyNative模式下ScatterUpdate算子动态shape场景下执行概率性失败的问题。 878- [I6Y4G5] 修复了Graph模式下Conv3D算子动态Shape场景下执行失败的问题。 879 880### 贡献者 881 882感谢以下人员做出的贡献: 883 884alashkari,anzhengqi,archer2049,B.L.LAN,baihuawei,bichaoyang,BJ-WANG,Bokai Li,Brian-K,caifubi,caiyimeng,cathwong,changzherui,ChenDonYY,chenfei_mindspore,chengang,chengbin,chenhaozhe,chenjianping,chenkang,chenweifeng,chuht,chujinjin,davidanugraha,DavidFFFan,DeshiChen,douzhixing,emmmmtang,Erpim,Ethan,fangwenyi,fangzehua,fangzhou0329,fary86,fengyixing,gaoshuanglong,Gaoxiong,gaoyong10,gengdongjie,gongdaguo1,Greatpan,GuoZhibin,guozhijian,hangq,hanhuifeng,haozhang,hedongdong,Henry Shi,heterogeneous_to_backoff_2_0,huangbingjian,huanghui,huangxinjing,hujiahui8,hujingsong,huoxinyou,jachua,jiahongQian,jianghui58,jiangzhenguang,jiaorui,jiaoy1224,jijiarong,jjfeing,JoeyLin,json,JuiceZ,jxl,kairui_kou,KevinYi,kisnwang,KXiong,laiyongqiang,lanzhineng,liangchenghui,liangzelang,LiangZhibo,lianliguang,lichen,ligan,lijunbin,limingqi107,ling,linqingke,liubuyu,liuchao,liuchuting,liujunzhu,liuluobin,liutongtong9,liuyang811,lixiao,liyan2022,liyejun,liyuxia,looop5,luochao60,luojianing,luoyang,luoyuan,lyqlola,maning202007,maoyaomin,Margaret_wangrui,mayadong,MaZhiming,melody,mengyuanli,michaelzhu_70ab,Mohammad Motallebi,moran,NaCN,nomindcarry,OwenSec,panfengfeng,panshaowu,panzhihui,pkuliuliu,qinzheng,qiuzhongya,qujianwei,r1chardf1d0,Renyuan Zhang,RobinGrosman,shaojunsong,shenwei41,Soaringfish,tangdezhi_123,tanghuikang,tan-wei-cheng,TinaMengtingZhang,TronZhang,TuDouNi,VectorSL,wang_ziqi,wanghenchang,wangnan39,wangpingan,wangshaocong,wangshengnan123,wangtongyu6,weichaoran,wind-zyx,wqx,wtcheng,wujueying,wYann,XianglongZeng,xiaohanzhang,xiaotianci,xiaoyao,XinDu,xulei,xumengjuan1,xupan,xwkgch,yanghaoran,yangluhang,yangruoqi713,yangshuo,yangsijia,yangzhenzhang,yanzhenxiang2020,Yanzhi_YI,yao_yf,yefeng,yeyunpeng2020,Yi_zhang95,yide12,YijieChen,YingLai Lin,YingtongHu,youshu,yuchaojie,yuedongli,YuJianfeng,zangqx,ZengZitao,zhangbuxue,zhangdanyang,zhangdong,zhangfanghe,zhangqi,zhangqinghua,zhangyanhui,zhangyinxia,zhangyongxian,zhangzhaoju,zhanzhan,zhengzuohe,ZhidanLiu,zhixinaa,zhoufeng,zhouyaqiang0,zhuguodong,zhupuxu,zhuyuxiao,zichun_ye,zjun,zlq2020,zong_shuai,ZPaC,zuochuanyong,zyli2020,陈宇,范吉斌,冯一航,胡彬,宦晓玲,黄勇,雷元哲,李良灿,李林杰,刘崇鸣,刘力力,刘勇琪,吕浩宇,吕昱峰(Nate.River),没有窗户的小巷,沈竞兴,十六夜,王程浩,王禹程,王振邦,徐安越,徐永飞,杨旭华,于振华,俞涵,张清华,张澍坤,张栩浩,张学同,赵英灼,周超,周洪叶,朱家兴 885 886欢迎以任何形式对项目提供贡献! 887 888## MindSpore Lite 2.1.0 Release Notes 889 890### 主要特性和增强 891 892#### MindSpore Lite云侧推理 893 894- [STABLE] 支持Ascend硬件后端单卡大模型以及单机多卡分布式大模型高性能推理。 895- [STABLE] Python API Ascend后端支持多模型共享工作空间(Workspace)内存。 896- [STABLE] [通过ModelGroup新增支持多模型共享权重](https://mindspore.cn/lite/docs/zh-CN/r2.1/use/cloud_infer/runtime_cpp.html#%E5%A4%9A%E6%A8%A1%E5%9E%8B%E5%85%B1%E4%BA%AB%E6%9D%83%E9%87%8D),比如大模型场景下全量模型和增量模型共享权重。 897 898#### API 899 900新增ModelGroup [Python](https://www.mindspore.cn/lite/api/zh-CN/r2.1/mindspore_lite/mindspore_lite.ModelGroup.html#mindspore_lite.ModelGroup)和[C++](https://mindspore.cn/lite/api/zh-CN/r2.1/api_cpp/mindspore.html#modelgroup)接口,接口定义如下: 901 902```python 903class ModelGroup 904 def __init__(self, flags=ModelGroupFlag.SHARE_WORKSPACE) 905 def add_model(self, models) 906 def cal_max_size_of_workspace(self, model_type, context) 907``` 908 909```C++ 910// class ModelGroup 911ModelGroup(ModelGroupFlag flags = ModelGroupFlag::kShareWorkspace); 912Status AddModel(const std::vector<std::string> &model_path_list); 913Status AddModel(const std::vector<std::pair<const void *, size_t>> &model_buff_list); 914Status AddModel(const std::vector &model_list); 915Status AddModel(const std::vector &model_list); 916``` 917 918## MindSpore 2.0.0 Release Notes 919 920### 主要特性和增强 921 922#### PyNative 923 924- [Stable] 全面支持动态shape,算子支持度详见[nn接口动态shape支持情况](https://www.mindspore.cn/docs/zh-CN/master/note/dynamic_shape_nn.html)、[ops接口动态shape支持情况](https://www.mindspore.cn/docs/zh-CN/master/note/dynamic_shape_func.html)和[算子动态shape支持情况](https://www.mindspore.cn/docs/zh-CN/master/note/dynamic_shape_primitive.html)。 925 926#### AutoParallel 927 928- [STABLE] 新建MindFormers独立仓,提供分布式并行套件功能,替代mindspore.nn.transformer模块。 929- [DEMO] 分布式Gather算子支持BatchDim属性。 930- [DEMO] 流水线并行支持指定输入数据任意维度作为Batch维。 931 932### API变更 933 934#### 算子 935 936- `mindspore.ops.AdaptiveAvgPool2D` 新增算子原语。 937- `mindspore.ops.BatchToSpaceNDV2` 新增算子原语。 938- `mindspore.ops.CeLU` 新增算子原语。 939- `mindspore.ops.ExtractVolumePatches` 新增算子原语。 940- `mindspore.ops.FFTWithSize` 新增算子原语。 941- `mindspore.ops.FillDiagonal` 新增算子原语。 942- `mindspore.ops.FractionalMaxPool3DWithFixedKsize` 新增算子原语。 943- `mindspore.ops.Im2Col` 新增算子原语。 944- `mindspore.ops.MaskedScatter` 新增算子原语。 945- `mindspore.ops.MatrixBandPart` 新增算子原语。 946- `mindspore.ops.MatrixInverse` 新增算子原语。 947- `mindspore.ops.MaxPoolWithArgmaxV2` 新增算子原语。 948- `mindspore.ops.Ormqr` 新增算子原语。 949- `mindspore.ops.RandpermV2` 新增算子原语。 950- `mindspore.ops.ResizeBicubic` 新增算子原语。 951- `mindspore.ops.Triu` 新增算子原语。 952- `mindspore.ops.Zeta` 新增算子原语。 953 954#### 非兼容性接口变更 955 956- 接口名称:mindspore.ops.MultitypeFuncGraph 957 958 变更内容:该接口参数doc_url在MindSpore 2.0.0.rc1版本作为测试特性,MindSpore 2.0.0版本优化后用户不需要额外配置此参数,故此参数在MindSpore 2.0.0版本删除。 959 960 <table> 961 <tr> 962 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0 接口</td> 963 </tr> 964 <tr> 965 <td><pre> 966 mindspore.ops.MultitypeFuncGraph(name, read_value=False, doc_url="") 967 </pre> 968 </td> 969 <td><pre> 970 mindspore.ops.MultitypeFuncGraph(name, read_value=False) 971 </pre> 972 </td> 973 </tr> 974 </table> 975 976- 接口名称:mindspore.set_context(auto_tune_mode="GA,RL") 977 978 变更内容:下线算子AutoTune调优工具,删除auto_tune_mode选项,未来会规划新的调优工具。 979 980- 接口名称:mindspore.set_context(mode=PYNATIVE_MODE) 981 982 变更内容:默认由GRAPH_MODE改为PYNATIVE_MODE。 983 984 说明:原有使用方式若未设置运行模式,该变更会影响性能,需要额外设置图模式,则使用以下方式: 985 mindspore.set_context(mode=GRAPH_MODE)。 986 987 <table> 988 <tr> 989 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 990 </tr> 991 <tr> 992 <td><pre> 993 mindspore.set_context(mode=GRAPH_MODE) 994 </pre> 995 </td> 996 <td><pre> 997 mindspore.set_context(mode=PYNATIVE_MODE) 998 </pre> 999 </td> 1000 </tr> 1001 </table> 1002 1003- 接口名称:mindspore.train.Model.train 1004 1005 变更内容:dataset_sink_mode 默认值由True改为False。 1006 1007 说明:原有使用方式若未设置dataset_sink_mode,该变更会影响性能,需要额外设置数据下沉运行模式,则使用以下方式: 1008 Model.train(dataset_sink_mode=True)。 1009 1010 <table> 1011 <tr> 1012 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1013 </tr> 1014 <tr> 1015 <td><pre> 1016 Model.train(dataset_sink_mode=True) 1017 </pre> 1018 </td> 1019 <td><pre> 1020 Model.train(dataset_sink_mode=False) 1021 </pre> 1022 </td> 1023 </tr> 1024 </table> 1025 1026- 接口名称:mindspore.export 1027 1028 变更内容:参数file_format由"AIR"改为不指定默认值。 1029 1030 说明:原有使用方式若未设置file_format,需要额外设置file_format,则使用以下方式: 1031 mindspore.export(net, *inputs, file_name, file_format="AIR", **kwargs)。 1032 1033 <table> 1034 <tr> 1035 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1036 </tr> 1037 <tr> 1038 <td><pre> 1039 mindspore.export(net, *inputs, file_name, 1040 file_format="AIR", **kwargs) 1041 </pre> 1042 </td> 1043 <td><pre> 1044 mindspore.export(net, *inputs, file_name, 1045 file_format, **kwargs) 1046 </pre> 1047 </td> 1048 </tr> 1049 </table> 1050 1051- 接口名称:mindspore.ops.norm 1052 1053 变更内容:扩展ord参数功能,支持多种形式。 1054 1055 <table> 1056 <tr> 1057 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1058 </tr> 1059 <tr> 1060 <td><pre> 1061 ops.norm(input_x, axis, p=2, keep_dims=False, epsilon=1e-12) 1062 >>> # 举例: 1063 >>> input = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]], 1064 ... [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32)) 1065 >>> output = ops.norm(input, [0, 1], p=2) 1066 </pre></td> 1067 <td><pre> 1068 ops.norm(A, ord=None, dim=None, keepdim=False, *, dtype=None) 1069 >>> # 举例: 1070 >>> input = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]], 1071 ... [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32)) 1072 >>> output = ops.norm(input, ord=2, dim=(0, 1)) 1073 </pre> 1074 </td> 1075 </tr> 1076 </table> 1077 1078- 接口名称:mindspore.Tensor.norm 1079 1080 变更内容:扩展ord参数功能,支持多种形式。 1081 1082 说明:参考ops.norm例子。 1083 1084 <table> 1085 <tr> 1086 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1087 </tr> 1088 <tr> 1089 <td><pre> 1090 Tensor.norm(axis, p=2, keep_dims=False, epsilon=1e-12) 1091 </pre> 1092 </td> 1093 <td><pre> 1094 Tensor.norm(ord=None, dim=None, keepdim=False, *, dtype=None) 1095 </pre> 1096 </td> 1097 </tr> 1098 </table> 1099 1100- 接口名称:mindspore.ops.dropout 1101 1102 变更内容:删除seed0、seed1参数,新增参数seed=None。由返回Tensor和掩码改为只返回Tensor,新增入参training=True。 1103 1104 <table> 1105 <tr> 1106 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1107 </tr> 1108 <tr> 1109 <td><pre> 1110 ops.dropout(x, p=0.5, seed0=0, seed1=0) 1111 >>> # 举例: 1112 >>> input = Tensor(((20, 16), (50, 50)), 1113 ... mindspore.float32) 1114 >>> output, mask = dropout(x, p=0.5) 1115 </pre> 1116 </td> 1117 <td><pre> 1118 ops.dropout(input, p=0.5, training=True, seed=None) 1119 >>> # 举例: 1120 >>> input = Tensor(((20, 16), (50, 50)), 1121 ... mindspore.float32) 1122 >>> output = ops.dropout(input, p=0.5,training=True) 1123 </pre> 1124 </td> 1125 </tr> 1126 </table> 1127 1128- 接口名称:mindspore.ops.dropout2d 1129 1130 变更内容:返回值从Tensor和掩码改为只返回Tensor,新增入参training=True。 1131 1132 <table> 1133 <tr> 1134 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1135 </tr> 1136 <tr> 1137 <td> 1138 <pre> 1139 ops.dropout2d(x, p=0.5) 1140 >>> # 举例: 1141 >>> input = Tensor(np.ones([2, 1, 2, 3]), 1142 ... mindspore.float32) 1143 >>> output, mask = dropout2d(input, 0.5) 1144 </pre> 1145 </td> 1146 <td> 1147 <pre> 1148 ops.dropout2d(input, p=0.5, training=True) 1149 >>> # 举例: 1150 >>> input = Tensor(np.ones([2, 1, 2, 3]), 1151 ... mindspore.float32) 1152 >>> output = ops.dropout2d(input, 0.5, training=True) 1153 </pre> 1154 </td> 1155 </tr> 1156 </table> 1157 1158- 接口名称:mindspore.ops.dropout3d 1159 1160 变更内容:返回值从Tensor和掩码改为只返回Tensor,新增入参training=True。 1161 1162 <table> 1163 <tr> 1164 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1165 </tr> 1166 <tr> 1167 <td><pre> 1168 ops.dropout3d(x, p=0.5) 1169 >>> # 举例: 1170 >>> input = Tensor(np.ones([2, 1, 2, 3]), 1171 ... mindspore.float32) 1172 >>> output, mask = dropout3d(input, 0.5) 1173 </pre> 1174 </td> 1175 <td><pre> 1176 ops.dropout3d(input, p=0.5, training=True) 1177 >>> # 举例: 1178 >>> input = Tensor(np.ones([2, 1, 2, 3]), 1179 ... mindspore.float32) 1180 >>> output = ops.dropout3d(input, 0.5, training=True) 1181 </pre> 1182 </td> 1183 </tr> 1184 </table> 1185 1186- 接口名称:mindspore.ops.std 1187 1188 变更内容:接口重构,接口使用方式更符合用户使用习惯。 1189 1190 说明:原有unbiased如果已显示设置,采用以下替代方案: 1191 ddof=0替代unbiased=False,ddof=1替代unbiased=True。 1192 1193 <table> 1194 <tr> 1195 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1196 </tr> 1197 <tr> 1198 <td><pre> 1199 ops.std(input_x, axis=(), unbiased=True, keep_dims=False) 1200 </pre> 1201 </td> 1202 <td><pre> 1203 ops.std(input, axis=None, ddof=0, keepdims=False) 1204 </pre> 1205 </td> 1206 </tr> 1207 </table> 1208 1209- 接口名称:mindspore.load_param_into_net 1210 1211 变更内容:新增ckpt中未加载的参数作为返回值。 1212 1213 <table> 1214 <tr> 1215 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1216 </tr> 1217 <tr> 1218 <td><pre> 1219 net_param = load_param_into_net() 1220 </pre> 1221 </td> 1222 <td><pre> 1223 net_param, ckpt_param = load_param_into_net() 1224 </pre> 1225 </td> 1226 </tr> 1227 </table> 1228 1229- 接口名称:mindspore.nn.BCELoss 1230 1231 变更内容:`reduction` 默认值由'none'变为'mean'。 1232 1233 <table> 1234 <tr> 1235 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1236 </tr> 1237 <tr> 1238 <td><pre> 1239 BCELoss(weight=None, reduction='none') 1240 >>> # 举例: 1241 >>> weight = Tensor(np.array([[1.0, 2.0, 3.0], 1242 ... [4.0, 3.3, 2.2]]), 1243 ... mindspore.float32) 1244 >>> loss = nn.BCELoss(weight=weight, reduction='mean') 1245 >>> logits = Tensor(np.array([[0.1, 0.2, 0.3], 1246 ... [0.5, 0.7, 0.9]]), 1247 ... mindspore.float32) 1248 >>> labels = Tensor(np.array([[0, 1, 0], [0, 0, 1]]), 1249 ... mindspore.float32) 1250 >>> output = loss(logits, labels) 1251 >>> print(output) 1252 >>> 1.8952923 1253 </pre> 1254 </td> 1255 <td><pre> 1256 BCELoss(weight=None, reduction='mean') 1257 >>> # 举例: 1258 >>> weight = Tensor(np.array([[1.0, 2.0, 3.0], 1259 ... [4.0, 3.3, 2.2]]), 1260 ... mindspore.float32) 1261 >>> loss = nn.BCELoss(weight=weight) 1262 >>> logits = Tensor(np.array([[0.1, 0.2, 0.3], 1263 ... [0.5, 0.7, 0.9]]), 1264 ... mindspore.float32) 1265 >>> labels = Tensor(np.array([[0, 1, 0], [0, 0, 1]]), 1266 ... mindspore.float32) 1267 >>> output = loss(logits, labels) 1268 >>> print(output) 1269 >>> 1.8952923 1270 </pre> 1271 </td> 1272 </tr> 1273 </table> 1274 1275- 接口名称:mindspore.ops.split 1276 1277 变更内容:接口重构,接口使用方式更符合用户使用习惯,调整第2个和第3个参数的顺序,修改并扩展split_size_or_sections功能。 1278 1279 <table> 1280 <tr> 1281 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1282 </tr> 1283 <tr> 1284 <td><pre> 1285 ops.split(input_x, axis=0, output_num=1) 1286 >>> # 举例: 1287 >>> input = Tensor(np.array([[1, 1, 1, 1], [2, 2, 2, 2]]), 1288 ... mindspore.int32) 1289 >>> output = ops.split(input, axis=1, output_num=4) 1290 </pre> 1291 </td> 1292 <td><pre> 1293 ops.split(tensor, split_size_or_sections, axis=0) 1294 >>> # 举例: 1295 >>> input = Tensor(np.array([[1, 1, 1, 1], [2, 2, 2, 2]]), 1296 ... mindspore.int32) 1297 >>> output = ops.split(input, split_size_or_sections=1, axis=1) 1298 </pre> 1299 </td> 1300 </tr> 1301 </table> 1302 1303- 接口名称:mindspore.Tensor.split 1304 1305 变更内容:接口重构,接口使用方式更符合用户使用习惯,调整两个参数的位置,修改并扩展split_size_or_sections功能。 1306 1307 说明:参考ops.split例子。 1308 1309 <table> 1310 <tr> 1311 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1312 </tr> 1313 <tr> 1314 <td><pre> 1315 Tensor.split(axis=0, output_num=1) 1316 </pre> 1317 </td> 1318 <td><pre> 1319 Tensor.split(split_size_or_sections, axis=0) 1320 </pre> 1321 </td> 1322 </tr> 1323 </table> 1324 1325- 接口名称:mindspore.ops.pad 1326 1327 变更内容:修改参数名paddings为padding,添加mode和value功能。 1328 1329 <table> 1330 <tr> 1331 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1332 </tr> 1333 <tr> 1334 <td><pre> 1335 ops.pad(input_x, paddings) 1336 >>> # 举例: 1337 >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6], 1338 ... [0.4, 0.5, -3.2]]), 1339 ... mindspore.float32) 1340 >>> paddings = ((1, 2), (2, 1)) 1341 >>> output = ops.pad(input_x, paddings) 1342 </pre> 1343 </td> 1344 <td><pre> 1345 ops.pad(input_x, padding, mode='constant', value=None) 1346 >>> # 举例: 1347 >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6], 1348 ... [0.4, 0.5, -3.2]]), 1349 ... mindspore.float32) 1350 >>> paddings = (2, 1, 1, 2) 1351 >>> output = ops.pad(input_x, paddings) 1352 </pre> 1353 </td> 1354 </tr> 1355 </table> 1356 1357- 接口名称:mindspore.ops.meshgrid 1358 1359 变更内容:入参由inputs改为*input。 1360 1361 <table> 1362 <tr> 1363 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1364 </tr> 1365 <tr> 1366 <td><pre> 1367 ops.meshgrid(inputs, indexing='xy') 1368 >>> # 举例: 1369 >>> x = Tensor(np.array([1, 2, 3, 4]).astype(np.int32)) 1370 >>> y = Tensor(np.array([5, 6, 7]).astype(np.int32)) 1371 >>> z = Tensor(np.array([8, 9, 0, 1, 2]).astype(np.int32)) 1372 >>> output = ops.meshgrid((x, y, z), indexing='xy') 1373 </pre> 1374 </td> 1375 <td><pre> 1376 ops.meshgrid(*inputs, indexing='xy') 1377 >>> # 举例: 1378 >>> x = Tensor(np.array([1, 2, 3, 4]).astype(np.int32)) 1379 >>> y = Tensor(np.array([5, 6, 7]).astype(np.int32)) 1380 >>> z = Tensor(np.array([8, 9, 0, 1, 2]).astype(np.int32)) 1381 >>> output = ops.meshgrid(x, y, z, indexing='xy') 1382 </pre> 1383 </td> 1384 </tr> 1385 </table> 1386 1387- 接口名称:mindspore.ops.max 1388 1389 变更内容:返回值调换顺序,由:“下标,最大值”改为“最大值,下标”。 1390 1391 <table> 1392 <tr> 1393 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1394 </tr> 1395 <tr> 1396 <td><pre> 1397 ops.max(x, axis=0, keep_dims=False) 1398 >>> # 举例: 1399 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 1400 ... mindspore.float32) 1401 >>> index, output = ops.max(input) 1402 >>> print(index, output) 1403 >>> 3 0.7 1404 </pre> 1405 </td> 1406 <td><pre> 1407 ops.max(input, axis=None, keepdims=False, *, initial=None, where=True, return_indices=False) 1408 >>> # 举例: 1409 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 1410 ... mindspore.float32) 1411 >>> output, index = ops.max(input, axis=0) 1412 >>> print(output, index) 1413 </pre> 1414 </td> 1415 </tr> 1416 </table> 1417 1418- 接口名称:mindspore.ops.min 1419 1420 变更内容:返回值调换顺序,由:“下标,最小值”改为“最小值,下标”。 1421 1422 <table> 1423 <tr> 1424 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1425 </tr> 1426 <tr> 1427 <td><pre> 1428 ops.min(x, axis=0, keep_dims=False) 1429 >>> # 举例: 1430 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 1431 ... mindspore.float32) 1432 >>> index, output = ops.min(input) 1433 >>> 0 0.0 1434 </pre> 1435 </td> 1436 <td><pre> 1437 ops.min(input, axis=None, keepdims=False, *, initial=None, where=True, return_indices=False) 1438 >>> # 举例: 1439 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 1440 ... mindspore.float32) 1441 >>> output, index = ops.min(input, keepdims=True) 1442 >>> 0.0 0 1443 </pre> 1444 </td> 1445 </tr> 1446 </table> 1447 1448- 接口名称:mindspore.ops.random_gamma 1449 1450 变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。 1451 1452 <table> 1453 <tr> 1454 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1455 </tr> 1456 <tr> 1457 <td><pre> 1458 ops.random_gamma(shape, alpha, seed=0, seed2=0) 1459 </pre> 1460 </td> 1461 <td><pre> 1462 ops.random_gamma(shape, alpha, seed=None) 1463 </pre> 1464 </td> 1465 </tr> 1466 </table> 1467 1468- 接口名称:mindspore.ops.standard_laplace 1469 1470 变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。 1471 1472 <table> 1473 <tr> 1474 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1475 </tr> 1476 <tr> 1477 <td><pre> 1478 ops.standard_laplace(shape, seed=0, seed2=0) 1479 </pre> 1480 </td> 1481 <td><pre> 1482 ops.standard_laplace(shape, seed=None) 1483 </pre> 1484 </td> 1485 </tr> 1486 </table> 1487 1488- 接口名称:mindspore.ops.standard_normal 1489 1490 变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。 1491 1492 <table> 1493 <tr> 1494 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1495 </tr> 1496 <tr> 1497 <td><pre> 1498 ops.standard_normal(shape, seed=0, seed2=0) 1499 </pre> 1500 </td> 1501 <td><pre> 1502 ops.standard_normal(shape, seed=None) 1503 </pre> 1504 </td> 1505 </tr> 1506 </table> 1507 1508- 接口名称:mindspore.ops.bernoulli 1509 1510 变更内容:seed的默认值由-1改为None。符合用户实际使用场景。 1511 1512 <table> 1513 <tr> 1514 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1515 </tr> 1516 <tr> 1517 <td><pre> 1518 ops.bernoulli(x, p=0.5, seed=-1) 1519 </pre> 1520 </td> 1521 <td><pre> 1522 ops.bernoulli(input, p=0.5, seed=None) 1523 </pre> 1524 </td> 1525 </tr> 1526 </table> 1527 1528- 接口名称:mindspore.data_sink 1529 1530 变更内容:删除steps参数,jit参数名称修改为jit_config,新增input_signature参数。增加易用性,符合用户实际使用场景。 1531 1532 <table> 1533 <tr> 1534 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1535 </tr> 1536 <tr> 1537 <td><pre> 1538 mindspore.data_sink(fn, dataset, steps, 1539 sink_size=1, jit=False) 1540 </pre> 1541 </td> 1542 <td><pre> 1543 mindspore.data_sink(fn, dataset, sink_size=1, 1544 jit_config=None, input_signature=None) 1545 </pre> 1546 </td> 1547 </tr> 1548 </table> 1549 1550- 接口名称:mindspore.ops.conv2d 1551 1552 变更内容:扩展接口功能,添加bias参数,修改参数名及参数顺序。 1553 1554 <table> 1555 <tr> 1556 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1557 </tr> 1558 <tr> 1559 <td><pre> 1560 conv2d(inputs, weight, pad_mode="valid", 1561 padding=0, stride=1, dilation=1, group=1) 1562 </pre> 1563 </td> 1564 <td><pre> 1565 conv2d(input, weight, bias=None, stride=1, 1566 pad_mode="valid", padding=0, dilation=1, groups=1) 1567 </pre> 1568 </td> 1569 </tr> 1570 </table> 1571 1572- 接口名称:mindspore.dataset.vision.Pad 1573 1574 变更内容:调整Pad、RandomCrop、RandomCropWithBbox入参padding,当Padding输入长度为2的序列时,行为将从使用第一个值填充左/上边界,使用第二个值填充右/下边界,变为使用第一个值填充左/右边界,使用第二个值填充上/下边界。 1575 1576 说明:仅使用size为2的padding参数无法兼容旧版本的效果,需显式表示(左、右、上、下)。 1577 1578 <table> 1579 <tr> 1580 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1581 </tr> 1582 <tr> 1583 <td><pre> 1584 mindspore.dataset.vision.Pad(padding=(1,2)) 1585 代表图片的左/上填充 1像素,右/下填充 2像素 1586 </pre> 1587 </td> 1588 <td><pre> 1589 mindspore.dataset.vision.Pad(padding=(1,2,1,2)) 1590 代表图片的左/上填充 1像素,右/下填充 2像素 1591 </pre> 1592 </td> 1593 </tr> 1594 </table> 1595 1596- 接口名称:mindspore.dataset.Dataset.map 1597 1598 变更内容:删除column_order参数。因为在绝大部分的情况下,output_columns参数与column_order参数都是同一个值,不需要再传入column_order。若需要调整数据列顺序,使用mindspore.dataset.Dataset.project实现。 1599 1600 说明: 1601 1602 1) 在不需要改变列顺序时,直接去掉column_order参数即可。 1603 2) 需要指定数据列顺序时,删除column_order参数,并在后面加上一个project方法进行列变换(如下面的例子)。 1604 1605 <table> 1606 <tr> 1607 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1608 </tr> 1609 <tr> 1610 <td><pre> 1611 >>> dataset = dataset.map(operations=[transforms], 1612 ... input_columns=["column_a"], 1613 ... output_columns=["column_b", "column_c"], 1614 ... column_order=["column_c", "column_b"]) 1615 </pre> 1616 </td> 1617 <td><pre> 1618 >>> dataset = dataset.map(operations=[transforms], 1619 ... input_columns=["column_a"], 1620 ... output_columns=["column_b", "column_c"]) 1621 >>> dataset = dataset.project(["column_c", column_b"])") 1622 </pre> 1623 </td> 1624 </tr> 1625 </table> 1626 1627- 接口名称:mindspore.dataset.Dataset.batch 1628 1629 变更内容:删除column_order参数。因为在绝大部分的情况下,output_columns参数与column_order参数都是同一个值,不需要再传入column_order。若需要调整数据列顺序,使用mindspore.dataset.Dataset.project实现。 1630 1631 说明: 1632 1633 1) 在不需要改变列顺序时,直接去掉column_order参数即可。 1634 2) 需要指定数据列顺序时,删除column_order参数,并在后面加上一个project方法进行列变换(如下面的例子)。 1635 1636 <table> 1637 <tr> 1638 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1639 </tr> 1640 <tr> 1641 <td><pre> 1642 >>> dataset = dataset.batch(batch_size=4, 1643 ... input_columns=["column_a"], 1644 ... output_columns=["column_b", "column_c"], 1645 ... column_order=["column_c", "column_b"]) 1646 </pre> 1647 </td> 1648 <td><pre> 1649 >>> dataset = dataset.batch(batch_size=4, input_columns=["column_a"] 1650 ... output_columns=["column_b", "column_c"]) 1651 >>> dataset = dataset.project(["column_c", column_b"])") 1652 </pre> 1653 </td> 1654 </tr> 1655 </table> 1656 1657- 接口名称:mindspore.dataset.Dataset.batch 1658 1659 变更内容:将batch方法拆分为:batch和padded_batch两个方法。pad_info参数从batch方法移动到padded_batch方法。 1660 1661 说明:如需使用pad_info参数,改用padded_batch方法。 1662 1663 <table> 1664 <tr> 1665 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1666 </tr> 1667 <tr> 1668 <td><pre> 1669 >>> dataset = dataset.batch(batch_size=4, 1670 ... drop_remainder=True, pad_info=...) 1671 </pre> 1672 </td> 1673 <td><pre> 1674 >>> dataset = dataset.padded_batch(batch_size=4, 1675 ... drop_remainder=True, pad_info=...) 1676 </pre> 1677 </td> 1678 </tr> 1679 </table> 1680 1681### Bug fixes 1682 1683- [I62I3J] 修复bgcf网络在昇腾310上推理失败的问题 1684- [I7C2W3] 修复Pipeline并行场景下多loss打印编译失败问题 1685 1686### 贡献者 1687 1688感谢以下人员做出的贡献: 1689 1690alashkari,anzhengqi,archer2049,B.L.LAN,baihuawei,bichaoyang,BJ-WANG,Bokai Li,Brian-K,caifubi,caiyimeng,cathwong,changzherui,ChenDonYY,chenfei_mindspore,chengang,chengbin,chenhaozhe,chenjianping,chenkang,chenweifeng,chuht,chujinjin,davidanugraha,DavidFFFan,DeshiChen,douzhixing,emmmmtang,Erpim,Ethan,fangwenyi,fangzehua,fangzhou0329,fary86,fengyixing,gaoshuanglong,Gaoxiong,gaoyong10,gengdongjie,gongdaguo1,Greatpan,GuoZhibin,guozhijian,hangq,hanhuifeng,haozhang,hedongdong,Henry Shi,heterogeneous_to_backoff_2_0,huangbingjian,huanghui,huangxinjing,hujiahui8,hujingsong,huoxinyou,jachua,jiahongQian,jianghui58,jiangzhenguang,jiaorui,jiaoy1224,jijiarong,jjfeing,JoeyLin,json,JuiceZ,jxl,kairui_kou,KevinYi,kisnwang,KXiong,laiyongqiang,lanzhineng,liangchenghui,liangzelang,LiangZhibo,lianliguang,lichen,ligan,lijunbin,limingqi107,ling,linqingke,liubuyu,liuchao,liuchuting,liujunzhu,liuluobin,liutongtong9,liuyang811,lixiao,liyan2022,liyejun,liyuxia,looop5,luochao60,luojianing,luoyang,luoyuan,lyqlola,maning202007,maoyaomin,Margaret_wangrui,mayadong,MaZhiming,melody,mengyuanli,michaelzhu_70ab,Mohammad Motallebi,moran,NaCN,nomindcarry,OwenSec,panfengfeng,panshaowu,panzhihui,pkuliuliu,qinzheng,qiuzhongya,qujianwei,r1chardf1d0,Renyuan Zhang,RobinGrosman,shaojunsong,shenwei41,Soaringfish,tangdezhi_123,tanghuikang,tan-wei-cheng,TinaMengtingZhang,TronZhang,TuDouNi,VectorSL,wang_ziqi,wanghenchang,wangnan39,wangpingan,wangshaocong,wangshengnan123,wangtongyu6,weichaoran,wind-zyx,wqx,wtcheng,wujueying,wYann,XianglongZeng,xiaohanzhang,xiaotianci,xiaoyao,XinDu,xulei,xumengjuan1,xupan,xwkgch,yanghaoran,yangluhang,yangruoqi713,yangshuo,yangsijia,yangzhenzhang,yanzhenxiang2020,Yanzhi_YI,yao_yf,yefeng,yeyunpeng2020,Yi_zhang95,yide12,YijieChen,YingLai Lin,YingtongHu,youshu,yuchaojie,yuedongli,YuJianfeng,zangqx,ZengZitao,zhangbuxue,zhangdanyang,zhangdong,zhangfanghe,zhangqi,zhangqinghua,zhangyanhui,zhangyinxia,zhangyongxian,zhangzhaoju,zhanzhan,zhengzuohe,ZhidanLiu,zhixinaa,zhoufeng,zhouyaqiang0,zhuguodong,zhupuxu,zhuyuxiao,zichun_ye,zjun,zlq2020,zong_shuai,ZPaC,zuochuanyong,zyli2020,陈宇,范吉斌,冯一航,胡彬,宦晓玲,黄勇,雷元哲,李良灿,李林杰,刘崇鸣,刘力力,刘勇琪,吕浩宇,吕昱峰(Nate.River),没有窗户的小巷,沈竞兴,十六夜,王程浩,王禹程,王振邦,徐安越,徐永飞,杨旭华,于振华,俞涵,张清华,张澍坤,张栩浩,张学同,赵英灼,周超,周洪叶,朱家兴 1691 1692欢迎以任何形式对项目提供贡献! 1693 1694## MindSpore 2.0.0-rc1 Release Notes 1695 1696### 主要特性和增强 1697 1698#### FrontEnd 1699 1700- [BETA] 静态图模式下,函数及类方法支持"return None"、"return"、无"return"语法。 1701- [BETA] 静态图模式下,支持返回list类型对象。 1702- [BETA] 静态图模式下,变量条件时,支持"raise"语法。 1703- [STABLE] 函数式调用支持数据下沉模式。 1704- [BETA] nn下新增Transformer层,提供更加易用的Transformer API,无需定义batch_size,支持动态seq_length。 1705 1706#### DataSet 1707 1708- [STABLE] Ascend环境下,数据下沉模式超时等待时间调整,默认调整到1900s,以解决数据下沉模式时因环境资源竞争、计算量大等因素容易导致GetNext算子等待超时的问题。 1709- [STABLE] MindRecord提供Schema、样本数查询接口,并提供多进程并行写入功能,允许用户更快生成MindRecord数据文件。 1710- [STABLE] Dataset流水线支持处理任意Python对象,用法参考[数据pipeline支持Python对象](https://www.mindspore.cn/tutorials/zh-CN/r2.0/advanced/dataset/python_objects.html)。 1711 1712#### AutoParallel 1713 1714- [STABLE] 策略保存时支持保存完整策略。 1715- [STABLE] 支持Conv3D/MaxPool3D/AvgPool3D分布式算子。 1716- [STABLE] 支持PyNative+shard算子级并行+优化器并行:并行表达和Model进行解耦,提供基础的并行表达能力。 1717- [STABLE] 支持图模式算子级并行+优化器并行:并行表达和Model进行解耦,提供基础的并行表达能力。 1718- [BETA] 支持自定义分布式图切分,提升分布式训练的灵活性。 1719 1720#### Runtime 1721 1722- [STABLE] 控制流支持子图下沉。 1723- [STABLE] 支持CUDA 11.6。 1724- [STABLE] 支持List/Tuple/Scalar类型算子的算子选择和执行,配套Python原生表达。 1725- [STABLE] 硬件不支持的算子自动选择CPU算子。 1726- [STABLE] 支持子图内部异构执行。 1727 1728#### Ascend 1729 1730- [STABLE] 支持CANN溢出检测新方案和HCCL运行态溢出检测。 1731- [STABLE] 支持集合通信算子dump功能。 1732 1733#### Profiler 1734 1735- [STABLE] 丰富Profiler采集项配置,用户可以更细度地采集性能数据。 1736 1737#### Dump 1738 1739- [BETA] 单卡PyNatvie模式支持算子溢出检测。 1740- [BETA] Graph模式支持hccl算子dump。 1741 1742### API变更 1743 1744- [STABLE] 新增计算类API,如:MaxUnpool、ReplicationPad、GaussianNLLLoss等。 1745 详情请参考:<https://www.mindspore.cn/docs/zh-CN/r2.0/api_python/mindspore.html>。 1746- [STABLE] 扩展存量API功能,如:AvgPool、pad、norm、interplate等。 1747 1748#### 算子 1749 1750- [BETA] `mindspore.ops.AdaptiveAvgPool3D` 新增算子原语。 1751- [BETA] `mindspore.ops.AffineGrid` 新增算子原语。 1752- [BETA] `mindspore.ops.Angle` 新增算子原语。 1753- [BETA] `mindspore.ops.BartlettWindow` 新增算子原语。 1754- [BETA] `mindspore.ops.Bernoulli` 新增算子原语。 1755- [BETA] `mindspore.ops.BesselI0` 新增算子原语。 1756- [BETA] `mindspore.ops.BesselI1` 新增算子原语。 1757- [BETA] `mindspore.ops.BesselJ0` 新增算子原语。 1758- [BETA] `mindspore.ops.BesselJ1` 新增算子原语。 1759- [BETA] `mindspore.ops.BesselK0` 新增算子原语。 1760- [BETA] `mindspore.ops.BesselK0e` 新增算子原语。 1761- [BETA] `mindspore.ops.BesselK1` 新增算子原语。 1762- [BETA] `mindspore.ops.BesselK1e` 新增算子原语。 1763- [BETA] `mindspore.ops.BesselY0` 新增算子原语。 1764- [BETA] `mindspore.ops.BesselY1` 新增算子原语。 1765- [BETA] `mindspore.ops.Bincount` 新增算子原语。 1766- [BETA] `mindspore.ops.BlackmanWindow` 新增算子原语。 1767- [BETA] `mindspore.ops.ChannelShuffle` 新增算子原语。 1768- [BETA] `mindspore.ops.Cholesky` 新增算子原语。 1769- [BETA] `mindspore.ops.Col2Im` 新增算子原语。 1770- [BETA] `mindspore.ops.Complex` 新增算子原语。 1771- [BETA] `mindspore.ops.ComplexAbs` 新增算子原语。 1772- [BETA] `mindspore.ops.Cross` 新增算子原语。 1773- [BETA] `mindspore.ops.CTCLossV2` 新增算子原语。 1774- [BETA] `mindspore.ops.Cummin` 新增算子原语。 1775- [BETA] `mindspore.ops.Diag` 新增算子原语。 1776- [BETA] `mindspore.ops.Digamma` 新增算子原语。 1777- [BETA] `mindspore.ops.Expand` 新增算子原语。 1778- [BETA] `mindspore.ops.Fmax` 新增算子原语。 1779- [BETA] `mindspore.ops.Gcd` 新增算子原语。 1780- [BETA] `mindspore.ops.Geqrf` 新增算子原语。 1781- [BETA] `mindspore.ops.GLU` 新增算子原语。 1782- [BETA] `mindspore.ops.GridSampler2D` 新增算子原语。 1783- [BETA] `mindspore.ops.GridSampler3D` 新增算子原语。 1784- [BETA] `mindspore.ops.HammingWindow` 新增算子原语。 1785- [BETA] `mindspore.ops.Heaviside` 新增算子原语。 1786- [BETA] `mindspore.ops.Hypot` 新增算子原语。 1787- [BETA] `mindspore.ops.Igamma` 新增算子原语。 1788- [BETA] `mindspore.ops.IndexFill` 新增算子原语。 1789- [BETA] `mindspore.ops.InplaceIndexAdd` 新增算子原语。 1790- [BETA] `mindspore.ops.InplaceUpdateV2` 新增算子原语。 1791- [BETA] `mindspore.ops.Lcm` 新增算子原语。 1792- [BETA] `mindspore.ops.LeftShift` 新增算子原语。 1793- [BETA] `mindspore.ops.LogicalXor` 新增算子原语。 1794- [BETA] `mindspore.ops.Logit` 新增算子原语。 1795- [BETA] `mindspore.ops.LogSpace` 新增算子原语。 1796- [BETA] `mindspore.ops.LuUnpack` 新增算子原语。 1797- [BETA] `mindspore.ops.MatrixDiagPartV3` 新增算子原语。 1798- [BETA] `mindspore.ops.MatrixDiagV3` 新增算子原语。 1799- [BETA] `mindspore.ops.MatrixSetDiagV3` 新增算子原语。 1800- [BETA] `mindspore.ops.MaxPool3DWithArgmax` 新增算子原语。 1801- [BETA] `mindspore.ops.MaxUnpool2D` 新增算子原语。 1802- [BETA] `mindspore.ops.MaxUnpool3D` 新增算子原语。 1803- [BETA] `mindspore.ops.MultiMarginLoss` 新增算子原语。 1804- [BETA] `mindspore.ops.MultinomialWithReplacement` 新增算子原语。 1805- [BETA] `mindspore.ops.Mvlgamma` 新增算子原语。 1806- [BETA] `mindspore.ops.NanToNum` 新增算子原语。 1807- [BETA] `mindspore.ops.NextAfter` 新增算子原语。 1808- [BETA] `mindspore.ops.Orgqr` 新增算子原语。 1809- [BETA] `mindspore.ops.Polygamma` 新增算子原语。 1810- [BETA] `mindspore.ops.ResizeBilinearV2` 新增算子原语。 1811- [BETA] `mindspore.ops.RightShift` 新增算子原语。 1812- [BETA] `mindspore.ops.ScatterNdDiv` 新增算子原语。 1813- [BETA] `mindspore.ops.ScatterNdMul` 新增算子原语。 1814- [BETA] `mindspore.ops.SearchSorted` 新增算子原语。 1815- [BETA] `mindspore.ops.Sinc` 新增算子原语。 1816- [BETA] `mindspore.ops.Trace` 新增算子原语。 1817- [BETA] `mindspore.ops.Tril` 新增算子原语。 1818- [BETA] `mindspore.ops.TrilIndices` 新增算子原语。 1819- [BETA] `mindspore.ops.TriuIndices` 新增算子原语。 1820- [BETA] `mindspore.ops.UniqueConsecutive` 新增算子原语。 1821- [STABLE] `mindspore.ops.Cummax` 新增算子原语。 1822- [STABLE] `mindspore.ops.FillV2` 新增算子原语。 1823- [STABLE] `mindspore.ops.IsClose` 新增算子原语。 1824- [STABLE] `mindspore.ops.MatrixSolve` 新增算子原语。 1825- [STABLE] `mindspore.ops.Median` 新增算子原语。 1826- [STABLE] `mindspore.ops.MultilabelMarginLoss` 新增算子原语。 1827- [STABLE] `mindspore.ops.NonZero` 新增算子原语。 1828- [STABLE] `mindspore.ops.Pdist` 新增算子原语。 1829- [STABLE] `mindspore.ops.Polar` 新增算子原语。 1830- [STABLE] `mindspore.ops.RandomGamma` 新增算子原语。 1831- [STABLE] `mindspore.ops.RandomPoisson` 新增算子原语。 1832- [STABLE] `mindspore.ops.RandomShuffle` 新增算子原语。 1833- [STABLE] `mindspore.ops.Renorm` 新增算子原语。 1834- [STABLE] `mindspore.ops.ScatterNdMax` 新增算子原语。 1835- [STABLE] `mindspore.ops.ScatterNdMin` 新增算子原语。 1836- [STABLE] `mindspore.ops.Svd` 新增算子原语。 1837- [STABLE] `mindspore.ops.TripletMarginLoss` 新增算子原语。 1838 1839#### 删除接口 1840 1841- `mindspore.compression`特性在MindSpore 1.8版本已经废弃,在当前版本被删除。用户可以使用[昇思金箍棒](https://gitee.com/mindspore/golden-stick)作为`mindspore.compression`的替代品来实现MindSpore中的量化感知训练算法。 1842- `mindspore.dataset.close_pool`、`mindspore.dataset.to_device`、`mindspore.dataset.set_dynamic_columns` 接口在之前版本已废弃,当前版本正式删除。 1843 1844#### 非兼容性接口变更 1845 1846- 接口名称:mindspore.set_context(mode=PYNATIVE_MODE) 1847 1848 变更内容:默认由GRAPH_MODE改为PYNATIVE_MODE。 1849 1850 说明:原有使用方式若未设置运行模式,该变更会影响性能,需要额外设置图模式,则使用以下方式: 1851 mindspore.set_context(mode=GRAPH_MODE)。 1852 1853 <table> 1854 <tr> 1855 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1856 </tr> 1857 <tr> 1858 <td><pre> 1859 mindspore.set_context(mode=GRAPH_MODE) 1860 </pre> 1861 </td> 1862 <td><pre> 1863 mindspore.set_context(mode=PYNATIVE_MODE) 1864 </pre> 1865 </td> 1866 </tr> 1867 </table> 1868 1869- 接口名称:mindspore.train.Model.train 1870 1871 变更内容:dataset_sink_mode 默认值由True改为False。 1872 1873 说明:原有使用方式若未设置dataset_sink_mode,该变更会影响性能,需要额外设置数据下沉运行模式,则使用以下方式: 1874 Model.train(dataset_sink_mode=True)。 1875 1876 <table> 1877 <tr> 1878 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1879 </tr> 1880 <tr> 1881 <td><pre> 1882 Model.train(dataset_sink_mode=True) 1883 </pre> 1884 </td> 1885 <td><pre> 1886 Model.train(dataset_sink_mode=False) 1887 </pre> 1888 </td> 1889 </tr> 1890 </table> 1891 1892- 接口名称:mindspore.export 1893 1894 变更内容:参数file_format由"AIR"改为不指定默认值。 1895 1896 说明:原有使用方式若未设置file_format,需要额外设置file_format,则使用以下方式: 1897 mindspore.export(net, *inputs, file_name, file_format="AIR", **kwargs)。 1898 1899 <table> 1900 <tr> 1901 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1902 </tr> 1903 <tr> 1904 <td><pre> 1905 mindspore.export(net, *inputs, file_name, 1906 file_format="AIR", **kwargs) 1907 </pre> 1908 </td> 1909 <td><pre> 1910 mindspore.export(net, *inputs, file_name, 1911 file_format, **kwargs) 1912 </pre> 1913 </td> 1914 </tr> 1915 </table> 1916 1917- 接口名称:mindspore.ops.norm 1918 1919 变更内容:扩展ord参数功能,支持多种形式。 1920 1921 <table> 1922 <tr> 1923 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1924 </tr> 1925 <tr> 1926 <td><pre> 1927 ops.norm(input_x, axis, p=2, keep_dims=False, epsilon=1e-12) 1928 >>> # 举例: 1929 >>> input = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]], 1930 ... [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32)) 1931 >>> output = ops.norm(input, [0, 1], p=2) 1932 </pre> 1933 </td> 1934 <td><pre> 1935 ops.norm(A, ord=None, dim=None, keepdim=False, *, dtype=None) 1936 >>> # 举例: 1937 >>> input = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]], 1938 ... [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32)) 1939 >>> output = ops.norm(input, ord=2, dim=(0, 1)) 1940 </pre> 1941 </td> 1942 </tr> 1943 </table> 1944 1945- 接口名称:mindspore.Tensor.norm 1946 1947 变更内容:扩展ord参数功能,支持多种形式。 1948 1949 说明:参考ops.norm例子。 1950 1951 <table> 1952 <tr> 1953 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1954 </tr> 1955 <tr> 1956 <td><pre> 1957 Tensor.norm(axis, p=2, keep_dims=False, epsilon=1e-12) 1958 </pre> 1959 </td> 1960 <td><pre> 1961 Tensor.norm(ord=None, dim=None, keepdim=False, *, dtype=None) 1962 </pre> 1963 </td> 1964 </tr> 1965 </table> 1966 1967- 接口名称:mindspore.ops.dropout 1968 1969 变更内容:删除seed0、seed1参数,新增参数seed=None。由返回Tensor和掩码改为只返回Tensor,新增入参training=True。 1970 1971 <table> 1972 <tr> 1973 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 1974 </tr> 1975 <tr> 1976 <td> 1977 <pre> 1978 ops.dropout(x, p=0.5, seed0=0, seed1=0) 1979 >>> # 举例: 1980 >>> input = Tensor(((20, 16), (50, 50)), 1981 ... mindspore.float32) 1982 >>> output, mask = dropout(x, p=0.5) 1983 </pre> 1984 </td> 1985 <td> 1986 <pre> 1987 ops.dropout(input, p=0.5, training=True, seed=None) 1988 >>> # 举例: 1989 >>> input = Tensor(((20, 16), (50, 50)), 1990 ... mindspore.float32) 1991 >>> output = ops.dropout(input, p=0.5,training=True) 1992 </pre> 1993 </td> 1994 </tr> 1995 </table> 1996 1997- 接口名称:mindspore.ops.dropout2d 1998 1999 变更内容:返回值从Tensor和掩码改为只返回Tensor,新增入参training=True。 2000 2001 <table> 2002 <tr> 2003 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2004 </tr> 2005 <tr> 2006 <td> 2007 <pre> 2008 ops.dropout2d(x, p=0.5) 2009 >>> # 举例: 2010 >>> input = Tensor(np.ones([2, 1, 2, 3]), 2011 ... mindspore.float32) 2012 >>> output, mask = dropout2d(input, 0.5) 2013 </pre> 2014 </td> 2015 <td> 2016 <pre> 2017 ops.dropout2d(input, p=0.5, training=True) 2018 >>> # 举例: 2019 >>> input = Tensor(np.ones([2, 1, 2, 3]), 2020 ... mindspore.float32) 2021 >>> output = ops.dropout2d(input, 0.5, training=True) 2022 </pre> 2023 </td> 2024 </tr> 2025 </table> 2026 2027- 接口名称:mindspore.ops.dropout3d 2028 2029 变更内容:返回值从Tensor和掩码改为只返回Tensor,新增入参training=True。 2030 2031 <table> 2032 <tr> 2033 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2034 </tr> 2035 <tr> 2036 <td><pre> 2037 ops.dropout3d(x, p=0.5) 2038 >>> # 举例: 2039 >>> input = Tensor(np.ones([2, 1, 2, 3]), 2040 ... mindspore.float32) 2041 >>> output, mask = dropout3d(input, 0.5) 2042 </pre> 2043 </td> 2044 <td><pre> 2045 ops.dropout3d(input, p=0.5, training=True) 2046 >>> # 举例: 2047 >>> input = Tensor(np.ones([2, 1, 2, 3]), 2048 ... mindspore.float32) 2049 >>> output = ops.dropout3d(input, 0.5, training=True) 2050 </pre> 2051 </td> 2052 </tr> 2053 </table> 2054 2055- 接口名称:mindspore.ops.std 2056 2057 变更内容:接口重构,接口使用方式更符合用户使用习惯。 2058 2059 说明:原有unbiased如果已显示设置,采用以下替代方案: 2060 ddof=0替代unbiased=False,ddof=1替代unbiased=True。 2061 2062 <table> 2063 <tr> 2064 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2065 </tr> 2066 <tr> 2067 <td><pre> 2068 ops.std(input_x, axis=(), unbiased=True, keep_dims=False) 2069 </pre> 2070 </td> 2071 <td><pre> 2072 ops.std(input, axis=None, ddof=0, keepdims=False) 2073 </pre> 2074 </td> 2075 </tr> 2076 </table> 2077 2078- 接口名称:mindspore.load_param_into_net 2079 2080 变更内容:新增ckpt中未加载的参数作为返回值。 2081 2082 <table> 2083 <tr> 2084 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2085 </tr> 2086 <tr> 2087 <td><pre> 2088 net_param = load_param_into_net() 2089 </pre> 2090 </td> 2091 <td><pre> 2092 net_param, ckpt_param = load_param_into_net() 2093 </pre> 2094 </td> 2095 </tr> 2096 </table> 2097 2098- 接口名称:mindspore.nn.BCELoss 2099 2100 变更内容:`reduction` 默认值由'none'变为'mean'。 2101 2102 <table> 2103 <tr> 2104 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2105 </tr> 2106 <tr> 2107 <td><pre> 2108 BCELoss(weight=None, reduction='none') 2109 >>> # 举例: 2110 >>> weight = Tensor(np.array([[1.0, 2.0, 3.0], 2111 ... [4.0, 3.3, 2.2]]), 2112 ... mindspore.float32) 2113 >>> loss = nn.BCELoss(weight=weight, reduction='mean') 2114 >>> logits = Tensor(np.array([[0.1, 0.2, 0.3], 2115 ... [0.5, 0.7, 0.9]]), 2116 ... mindspore.float32) 2117 >>> labels = Tensor(np.array([[0, 1, 0], [0, 0, 1]]), 2118 ... mindspore.float32) 2119 >>> output = loss(logits, labels) 2120 >>> print(output) 2121 >>> 1.8952923 2122 </pre> 2123 </td> 2124 <td><pre> 2125 BCELoss(weight=None, reduction='mean') 2126 >>> # 举例: 2127 >>> weight = Tensor(np.array([[1.0, 2.0, 3.0], 2128 ... [4.0, 3.3, 2.2]]), 2129 ... mindspore.float32) 2130 >>> loss = nn.BCELoss(weight=weight) 2131 >>> logits = Tensor(np.array([[0.1, 0.2, 0.3], 2132 ... [0.5, 0.7, 0.9]]), 2133 ... mindspore.float32) 2134 >>> labels = Tensor(np.array([[0, 1, 0], [0, 0, 1]]), 2135 ... mindspore.float32) 2136 >>> output = loss(logits, labels) 2137 >>> print(output) 2138 >>> 1.8952923 2139 </pre> 2140 </td> 2141 </tr> 2142 </table> 2143 2144- 接口名称:mindspore.ops.split 2145 2146 变更内容:接口重构,接口使用方式更符合用户使用习惯,调整第2个和第3个参数的顺序,修改并扩展split_size_or_sections功能。 2147 2148 <table> 2149 <tr> 2150 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2151 </tr> 2152 <tr> 2153 <td><pre> 2154 ops.split(input_x, axis=0, output_num=1) 2155 >>> # 举例: 2156 >>> input = Tensor(np.array([[1, 1, 1, 1], [2, 2, 2, 2]]), 2157 ... mindspore.int32) 2158 >>> output = ops.split(input, axis=1, output_num=4) 2159 </pre> 2160 </td> 2161 <td><pre> 2162 ops.split(tensor, split_size_or_sections, axis=0) 2163 >>> # 举例: 2164 >>> input = Tensor(np.array([[1, 1, 1, 1], [2, 2, 2, 2]]), 2165 ... mindspore.int32) 2166 >>> output = ops.split(input, split_size_or_sections=1, axis=1) 2167 </pre> 2168 </td> 2169 </tr> 2170 </table> 2171 2172- 接口名称:mindspore.Tensor.split 2173 2174 变更内容:接口重构,接口使用方式更符合用户使用习惯,调整两个参数的位置,修改并扩展split_size_or_sections功能。 2175 2176 说明:参考ops.split例子。 2177 2178 <table> 2179 <tr> 2180 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2181 </tr> 2182 <tr> 2183 <td><pre> 2184 Tensor.split(axis=0, output_num=1) 2185 </pre> 2186 </td> 2187 <td><pre> 2188 Tensor.split(split_size_or_sections, axis=0) 2189 </pre> 2190 </td> 2191 </tr> 2192 </table> 2193 2194- 接口名称:mindspore.ops.pad 2195 2196 变更内容:修改参数名paddings为padding,添加mode和value功能。 2197 2198 <table> 2199 <tr> 2200 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2201 </tr> 2202 <tr> 2203 <td><pre> 2204 ops.pad(input_x, paddings) 2205 >>> # 举例: 2206 >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6], 2207 ... [0.4, 0.5, -3.2]]), 2208 ... mindspore.float32) 2209 >>> paddings = ((1, 2), (2, 1)) 2210 >>> output = ops.pad(input_x, paddings) 2211 </pre> 2212 </td> 2213 <td><pre> 2214 ops.pad(input_x, padding, mode='constant', value=None) 2215 >>> # 举例: 2216 >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6], 2217 ... [0.4, 0.5, -3.2]]), 2218 ... mindspore.float32) 2219 >>> paddings = (2, 1, 1, 2) 2220 >>> output = ops.pad(input_x, paddings) 2221 </pre> 2222 </td> 2223 </tr> 2224 </table> 2225 2226- 接口名称:mindspore.ops.meshgrid 2227 2228 变更内容:入参由inputs改为*input。 2229 2230 <table> 2231 <tr> 2232 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2233 </tr> 2234 <tr> 2235 <td><pre> 2236 ops.meshgrid(inputs, indexing='xy') 2237 >>> # 举例: 2238 >>> x = Tensor(np.array([1, 2, 3, 4]).astype(np.int32)) 2239 >>> y = Tensor(np.array([5, 6, 7]).astype(np.int32)) 2240 >>> z = Tensor(np.array([8, 9, 0, 1, 2]).astype(np.int32)) 2241 >>> output = ops.meshgrid((x, y, z), indexing='xy') 2242 </pre> 2243 </td> 2244 <td><pre> 2245 ops.meshgrid(*inputs, indexing='xy') 2246 >>> # 举例: 2247 >>> x = Tensor(np.array([1, 2, 3, 4]).astype(np.int32)) 2248 >>> y = Tensor(np.array([5, 6, 7]).astype(np.int32)) 2249 >>> z = Tensor(np.array([8, 9, 0, 1, 2]).astype(np.int32)) 2250 >>> output = ops.meshgrid(x, y, z, indexing='xy') 2251 </pre> 2252 </td> 2253 </tr> 2254 </table> 2255 2256- 接口名称:mindspore.ops.max 2257 2258 变更内容:返回值调换顺序,由:“下标,最大值”改为“最大值,下标”。 2259 2260 <table> 2261 <tr> 2262 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2263 </tr> 2264 <tr> 2265 <td><pre> 2266 ops.max(x, axis=0, keep_dims=False) 2267 >>> # 举例: 2268 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 2269 ... mindspore.float32) 2270 >>> index, output = ops.max(input) 2271 >>> print(index, output) 2272 >>> 3 0.7 2273 </pre> 2274 </td> 2275 <td><pre> 2276 ops.max(input, axis=None, keepdims=False, *, initial=None, where=True, return_indices=False) 2277 >>> # 举例: 2278 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 2279 ... mindspore.float32) 2280 >>> output, index = ops.max(input, axis=0) 2281 >>> print(output, index) 2282 </pre> 2283 </td> 2284 </tr> 2285 </table> 2286 2287- 接口名称:mindspore.ops.min 2288 2289 变更内容:返回值调换顺序,由:“下标,最小值”改为“最小值,下标”。 2290 2291 <table> 2292 <tr> 2293 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2294 </tr> 2295 <tr> 2296 <td><pre> 2297 ops.min(x, axis=0, keep_dims=False) 2298 >>> # 举例: 2299 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 2300 ... mindspore.float32) 2301 >>> index, output = ops.min(input) 2302 >>> 0 0.0 2303 </pre> 2304 </td> 2305 <td><pre> 2306 ops.min(input, axis=None, keepdims=False, *, initial=None, where=True, return_indices=False) 2307 >>> # 举例: 2308 >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), 2309 ... mindspore.float32) 2310 >>> output, index = ops.min(input, keepdims=True) 2311 >>> 0.0 0 2312 </pre> 2313 </td> 2314 </tr> 2315 </table> 2316 2317- 接口名称:mindspore.ops.random_gamma 2318 2319 变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。 2320 2321 <table> 2322 <tr> 2323 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2324 </tr> 2325 <tr> 2326 <td><pre> 2327 ops.random_gamma(shape, alpha, seed=0, seed2=0) 2328 </pre> 2329 </td> 2330 <td><pre> 2331 ops.random_gamma(shape, alpha, seed=None) 2332 </pre> 2333 </td> 2334 </tr> 2335 </table> 2336 2337- 接口名称:mindspore.ops.standard_laplace 2338 2339 变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。 2340 2341 <table> 2342 <tr> 2343 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2344 </tr> 2345 <tr> 2346 <td><pre> 2347 ops.standard_laplace(shape, seed=0, seed2=0) 2348 </pre> 2349 </td> 2350 <td><pre> 2351 ops.standard_laplace(shape, seed=None) 2352 </pre> 2353 </td> 2354 </tr> 2355 </table> 2356 2357- 接口名称:mindspore.ops.standard_normal 2358 2359 变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。 2360 2361 <table> 2362 <tr> 2363 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2364 </tr> 2365 <tr> 2366 <td><pre> 2367 ops.standard_normal(shape, seed=0, seed2=0) 2368 </pre> 2369 </td> 2370 <td><pre> 2371 ops.standard_normal(shape, seed=None) 2372 </pre> 2373 </td> 2374 </tr> 2375 </table> 2376 2377- 接口名称:mindspore.ops.bernoulli 2378 2379 变更内容:seed的默认值由-1改为None。符合用户实际使用场景。 2380 2381 <table> 2382 <tr> 2383 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2384 </tr> 2385 <tr> 2386 <td><pre> 2387 ops.bernoulli(x, p=0.5, seed=-1) 2388 </pre> 2389 </td> 2390 <td><pre> 2391 ops.bernoulli(input, p=0.5, seed=None) 2392 </pre> 2393 </td> 2394 </tr> 2395 </table> 2396 2397- 接口名称:mindspore.data_sink 2398 2399 变更内容:删除steps参数,jit参数名称修改为jit_config,新增input_signature参数。增加易用性,符合用户实际使用场景。 2400 2401 <table> 2402 <tr> 2403 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2404 </tr> 2405 <tr> 2406 <td><pre> 2407 mindspore.data_sink(fn, dataset, steps, 2408 sink_size=1, jit=False) 2409 </pre> 2410 </td> 2411 <td><pre> 2412 mindspore.data_sink(fn, dataset, sink_size=1, 2413 jit_config=None, input_signature=None) 2414 </pre> 2415 </td> 2416 </tr> 2417 </table> 2418 2419- 接口名称:mindspore.ops.conv2d 2420 2421 变更内容:扩展接口功能,添加bias参数,修改参数名及参数顺序。 2422 2423 <table> 2424 <tr> 2425 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2426 </tr> 2427 <tr> 2428 <td><pre> 2429 conv2d(inputs, weight, pad_mode="valid", 2430 padding=0, stride=1, dilation=1, group=1) 2431 </pre> 2432 </td> 2433 <td><pre> 2434 conv2d(input, weight, bias=None, stride=1, 2435 pad_mode="valid", padding=0, dilation=1, groups=1) 2436 </pre> 2437 </td> 2438 </tr> 2439 </table> 2440 2441- 接口名称:mindspore.dataset.vision.Pad 2442 2443 变更内容:调整Pad、RandomCrop、RandomCropWithBbox入参padding,当Padding输入长度为2的序列时,行为将从使用第一个值填充左/上边界,使用第二个值填充右/下边界,变为使用第一个值填充左/右边界,使用第二个值填充上/下边界。 2444 2445 说明:仅使用size为2的padding参数无法兼容旧版本的效果,需显式表示(左、右、上、下)。 2446 2447 <table> 2448 <tr> 2449 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2450 </tr> 2451 <tr> 2452 <td><pre> 2453 mindspore.dataset.vision.Pad(padding=(1,2)) 2454 代表图片的左/上填充 1像素,右/下填充 2像素 2455 </pre> 2456 </td> 2457 <td><pre> 2458 mindspore.dataset.vision.Pad(padding=(1,2,1,2)) 2459 代表图片的左/上填充 1像素,右/下填充 2像素 2460 </pre> 2461 </td> 2462 </tr> 2463 </table> 2464 2465- 接口名称:mindspore.dataset.Dataset.map 2466 2467 变更内容:删除column_order参数。因为在绝大部分的情况下,output_columns参数与column_order参数都是同一个值,不需要再传入column_order。若需要调整数据列顺序,使用mindspore.dataset.Dataset.project实现。 2468 2469 说明: 2470 2471 1) 在不需要改变列顺序时,直接去掉column_order参数即可。 2472 2) 需要指定数据列顺序时,删除column_order参数,并在后面加上一个project方法进行列变换(如下面的例子)。 2473 2474 <table> 2475 <tr> 2476 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2477 </tr> 2478 <tr> 2479 <td><pre> 2480 >>> dataset = dataset.map(operations=[transforms], 2481 ... input_columns=["column_a"], 2482 ... output_columns=["column_b", "column_c"], 2483 ... column_order=["column_c", "column_b"]) 2484 </pre> 2485 </td> 2486 <td><pre> 2487 >>> dataset = dataset.map(operations=[transforms], 2488 ... input_columns=["column_a"], 2489 ... output_columns=["column_b", "column_c"]) 2490 >>> dataset = dataset.project(["column_c", column_b"])") 2491 </pre> 2492 </td> 2493 </tr> 2494 </table> 2495 2496- 接口名称:mindspore.dataset.Dataset.batch 2497 2498 变更内容:删除column_order参数。因为在绝大部分的情况下,output_columns参数与column_order参数都是同一个值,不需要再传入column_order。若需要调整数据列顺序,使用mindspore.dataset.Dataset.project实现。 2499 2500 说明: 2501 2502 1) 在不需要改变列顺序时,直接去掉column_order参数即可。 2503 2) 需要指定数据列顺序时,删除column_order参数,并在后面加上一个project方法进行列变换(如下面的例子)。 2504 2505 <table> 2506 <tr> 2507 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2508 </tr> 2509 <tr> 2510 <td><pre> 2511 >>> dataset = dataset.batch(batch_size=4, 2512 ... input_columns=["column_a"], 2513 ... output_columns=["column_b", "column_c"], 2514 ... column_order=["column_c", "column_b"]) 2515 </pre> 2516 </td> 2517 <td><pre> 2518 >>> dataset = dataset.batch(batch_size=4, input_columns=["column_a"] 2519 ... output_columns=["column_b", "column_c"]) 2520 >>> dataset = dataset.project(["column_c", column_b"])") 2521 </pre> 2522 </td> 2523 </tr> 2524 </table> 2525 2526- 接口名称:mindspore.dataset.Dataset.batch 2527 2528 变更内容:将batch方法拆分为:batch和padded_batch两个方法。pad_info参数从batch方法移动到padded_batch方法。 2529 2530 说明:如需使用pad_info参数,改用padded_batch方法。 2531 2532 <table> 2533 <tr> 2534 <td style="text-align:center"> 原接口 </td> <td style="text-align:center"> v2.0.0-rc1接口 </td> 2535 </tr> 2536 <tr> 2537 <td><pre> 2538 >>> dataset = dataset.batch(batch_size=4, 2539 ... drop_remainder=True, pad_info=...) 2540 </pre> 2541 </td> 2542 <td><pre> 2543 >>> dataset = dataset.padded_batch(batch_size=4, 2544 ... drop_remainder=True, pad_info=...) 2545 </pre> 2546 </td> 2547 </tr> 2548 </table> 2549 2550### Bug fixes 2551 2552- [I66PE6] 修复 AssignSub算子异常入参导致core dump的问题。 2553 2554- [I6F5E6] 修复 data_sink 方法在Ascend上执行超时的问题。 2555 2556### 其它 2557 2558- Windows系统支持由于还在优化中,rc版本暂不支持,将在2.0正式版本提供下载。 2559 2560### 贡献者 2561 2562感谢以下人员做出的贡献: 2563 2564alashkari,anzhengqi,archer2049,B.L.LAN,baihuawei,bichaoyang,BJ-WANG,Bokai Li,Brian-K,caifubi,caiyimeng,cathwong,changzherui,ChenDonYY,chenfei_mindspore,chengang,chengbin,chenhaozhe,chenjianping,chenkang,chenweifeng,chuht,chujinjin,davidanugraha,DavidFFFan,DeshiChen,douzhixing,emmmmtang,Erpim,Ethan,fangwenyi,fangzehua,fangzhou0329,fary86,fengyixing,gaoshuanglong,Gaoxiong,gaoyong10,gengdongjie,gongdaguo1,Greatpan,GuoZhibin,guozhijian,hangq,hanhuifeng,haozhang,hedongdong,Henry Shi,heterogeneous_to_backoff_2_0,huangbingjian,huanghui,huangxinjing,hujiahui8,hujingsong,huoxinyou,jachua,jiahongQian,jianghui58,jiangzhenguang,jiaorui,jiaoy1224,jijiarong,jjfeing,JoeyLin,json,JuiceZ,jxl,kairui_kou,KevinYi,kisnwang,KXiong,laiyongqiang,lanzhineng,liangchenghui,liangzelang,LiangZhibo,lianliguang,lichen,ligan,lijunbin,limingqi107,ling,linqingke,liubuyu,liuchao,liuchuting,liujunzhu,liuluobin,liutongtong9,liuyang811,lixiao,liyan2022,liyejun,liyuxia,looop5,luochao60,luojianing,luoyang,luoyuan,lyqlola,maning202007,maoyaomin,Margaret_wangrui,mayadong,MaZhiming,melody,mengyuanli,michaelzhu_70ab,Mohammad Motallebi,moran,NaCN,nomindcarry,OwenSec,panfengfeng,panshaowu,panzhihui,pkuliuliu,qinzheng,qiuzhongya,qujianwei,r1chardf1d0,Renyuan Zhang,RobinGrosman,shaojunsong,shenwei41,Soaringfish,tangdezhi_123,tanghuikang,tan-wei-cheng,TinaMengtingZhang,TronZhang,TuDouNi,VectorSL,wang_ziqi,wanghenchang,wangnan39,wangpingan,wangshaocong,wangshengnan123,wangtongyu6,weichaoran,wind-zyx,wqx,wtcheng,wujueying,wYann,XianglongZeng,xiaohanzhang,xiaotianci,xiaoyao,XinDu,xulei,xumengjuan1,xupan,xwkgch,yanghaoran,yangluhang,yangruoqi713,yangshuo,yangsijia,yangzhenzhang,yanzhenxiang2020,Yanzhi_YI,yao_yf,yefeng,yeyunpeng2020,Yi_zhang95,yide12,YijieChen,YingLai Lin,YingtongHu,youshu,yuchaojie,yuedongli,YuJianfeng,zangqx,ZengZitao,zhangbuxue,zhangdanyang,zhangdong,zhangfanghe,zhangqi,zhangqinghua,zhangyanhui,zhangyinxia,zhangyongxian,zhangzhaoju,zhanzhan,zhengzuohe,ZhidanLiu,zhixinaa,zhoufeng,zhouyaqiang0,zhuguodong,zhupuxu,zhuyuxiao,zichun_ye,zjun,zlq2020,zong_shuai,ZPaC,zuochuanyong,zyli2020,陈宇,范吉斌,冯一航,胡彬,宦晓玲,黄勇,雷元哲,李良灿,李林杰,刘崇鸣,刘力力,刘勇琪,吕浩宇,吕昱峰(Nate.River),没有窗户的小巷,沈竞兴,十六夜,王程浩,王禹程,王振邦,徐安越,徐永飞,杨旭华,于振华,俞涵,张清华,张澍坤,张栩浩,张学同,赵英灼,周超,周洪叶,朱家兴 2565 2566欢迎以任何形式对项目提供贡献! 2567 2568## MindSpore Lite 2.0.0-rc1 Release Notes 2569 2570### 主要特性和增强 2571 2572#### MindSpore Lite云侧推理 2573 2574原MindSpore Lite版本主要面向手机、车机等边缘设备,新增云侧推理版本支持云侧多后端硬件资源的场景,支持Ascend及Nvidia GPU推理专用卡,高效利用云侧多核资源。 2575 2576原通过MindSpore训练版本集成的推理方式可以变更为基于MindSpore Lite进行适配集成,具体可参考[云侧推理快速入门](https://mindspore.cn/lite/docs/zh-CN/r2.0/quick_start/one_hour_introduction_cloud.html),如果想要保持原始集成方式可以参考[MindSpore推理FAQ](https://mindspore.cn/docs/zh-CN/r2.0/faq/inference.html)。 2577 2578- [STABLE] 支持MindIR模型文件。 2579- [STABLE] 支持将第三方Onnx、Tensorflow、Caffe模型通过MindSpore Lite转换工具转换为MindIR模型文件。 2580- [STABLE] 一个发布包支持多种硬件后端:Ascend 310/310P/910、Nvidia GPU、CPU。 2581- [STABLE] 支持`Model`接口和`ModelParallelRunner`并行推理接口。 2582- [STABLE] 支持C++、Python和Java推理接口。 2583 2584#### API 2585 2586- 因原Python API配置参数较多、使用较复杂,因此在2.0版本针对Python API易用性进行优化,包括类构造方法、类属性的调整等,此外2.0及之后的Python API将整合到云侧推理场景,与旧版本不兼容。详细参见[Python API说明文档](https://www.mindspore.cn/lite/api/zh-CN/r2.0/mindspore_lite.html)。 2587 2588## MindSpore 2.0.0-alpha Release Notes 2589 2590### 主要特性和增强 2591 2592#### PyNative 2593 2594- MindSpore默认模式切换成PyNative模式。需要手动设置模式可以参考文档[计算图](https://www.mindspore.cn/tutorials/zh-CN/r2.0.0-alpha/advanced/compute_graph.html)。 2595- 完成动态shape执行方案重构,提升反向构图性能,支持非padding方案的动态shape网络编程,当前主要验证网络Transformer-GPU、YOLOV5-GPU、ASR-Ascend。从[models仓](https://gitee.com/mindspore/models/tree/dynamic_shape)获取Transformer-GPU和YOLOV5-GPU。Ascend后端受算子适配度限制,只支持下列算子:Add、Assign、BatchMatMul、BiasAdd、BiasAddGrad、Cast、Conv2D、Conv2DBackpropFilter、Conv2DBackpropInput、CTCLoss、Div、Dropout、DropoutDoMask、Equal、ExpandDims、Gather、GetNext、LayerNorm、LayerNormGrad、LessEqual、Load、Log、LogicalAnd、LogicalNot、LogicalOr、LogSoftmax、LogSoftmaxGrad、MatMul、Maximum、Mul、Neg、NotEqual、NPUAllocFloatStatus、NPUClearFloatStatus、OneHot、RealDiv、Reciprocal、ReduceMean、ReduceSum、ReLU、ReluGrad、Reshape、Select、Softmax、StridedSlice、Sub、Tile、Transpose、UnsortedSegmentSum、ZerosLike。其余算子未经过完整验证,请酌情使用。 2596 2597#### DataSet 2598 2599- TFRecordDataset API支持直接读取通过GZIP或ZLIB压缩后的TFRecord文件。 2600- NumpySlicesDataset API支持同时处理不同维度的数据。 2601- 优化错误日志信息的结构,展示更清晰的调用栈信息便于调试、定位问题。 2602- 修复分布式训练场景下 `mindspore.dataset.config.set_seed` 对随机种子设置不生效的问题。 2603 2604#### AutoParallel 2605 2606- 支持更多算子分布式能力。 2607 2608 Element Wise类算子:AddN、 BitwiseAnd、 BitwiseOr、 BitwiseXor、 CumProd、 HShrink、 HSigmoid、 IsFinite、 Mish、 MulNoNan、 Rint、 SeLU、 SoftShrink、 TruncateDiv、 TruncateMod、 Xdivy Xlogy、 InplaceAdd、 InplacSub、 InplaceUpdate、 Cdist、 L2Loss、 Lerp。 2609 2610 Math类算子:SquaredDifference、 Erfinv、 MaskedFill、 SplitV、 Gamma、 KLDivLoss、 LinSpace。Scatter类算子:ScatterAdd、ScatterDiv、ScatterMax、ScatterMul、ScatterNdAdd、ScatterNdSub、ScatterNdUpdate、ScatterSub、TensorScatterAdd、TensorScatterDiv、TensorScatterMax、TensorScatterMax、TensorScatterMul、TensorScatterAdd、TensorScatterUpdate。 2611 2612- 增加`transform_checkpoints`和`transform_checkpoint_by_rank`接口。给定转换前后的策略文件,即可实现对分布式权重转换。详情请参考[分布式弹性训练与推理](https://www.mindspore.cn/tutorials/experts/zh-CN/r2.0.0-alpha/parallel/resilience_train_and_predict.html)。 2613 2614### API变更 2615 2616#### 算子 2617 2618- [STABLE] `mindspore.ops.AdaptiveMaxPool3D` 新增算子原语。 2619- [STABLE] `mindspore.ops.AdjustHue` 新增算子原语。 2620- [STABLE] `mindspore.ops.BartlettWindow` 新增算子原语。 2621- [STABLE] `mindspore.ops.BesselJ0` 新增算子原语。 2622- [STABLE] `mindspore.ops.BesselJ1` 新增算子原语。 2623- [STABLE] `mindspore.ops.BesselK0` 新增算子原语。 2624- [STABLE] `mindspore.ops.BesselK0e` 新增算子原语。 2625- [STABLE] `mindspore.ops.BesselK1` 新增算子原语。 2626- [STABLE] `mindspore.ops.BesselK1e` 新增算子原语。 2627- [STABLE] `mindspore.ops.BesselY0` 新增算子原语。 2628- [STABLE] `mindspore.ops.BesselY1` 新增算子原语。 2629- [STABLE] `mindspore.ops.Betainc` 新增算子原语。 2630- [STABLE] `mindspore.ops.Bincount` 新增算子原语。 2631- [STABLE] `mindspore.ops.BlackmanWindow` 新增算子原语。 2632- [STABLE] `mindspore.ops.Bucketize` 新增算子原语。 2633- [STABLE] `mindspore.ops.CombinedNonMaxSuppression` 新增算子原语。 2634- [STABLE] `mindspore.ops.CompareAndBitpack` 新增算子原语。 2635- [STABLE] `mindspore.ops.Complex` 新增算子原语。 2636- [STABLE] `mindspore.ops.DataFormatVecPermute` 新增算子原语。 2637- [STABLE] `mindspore.ops.EuclideanNorm` 新增算子原语。 2638- [STABLE] `mindspore.ops.Expand` 新增算子原语。 2639- [STABLE] `mindspore.ops.ExtractGlimpse` 新增算子原语。 2640- [STABLE] `mindspore.ops.FillDiagonal` 新增算子原语。 2641- [STABLE] `mindspore.ops.FractionalAvgPool` 新增算子原语。 2642- [STABLE] `mindspore.ops.FractionalMaxPool` 新增算子原语。 2643- [STABLE] `mindspore.ops.Gcd` 新增算子原语。 2644- [STABLE] `mindspore.ops.HammingWindow` 新增算子原语。 2645- [STABLE] `mindspore.ops.Histogram` 新增算子原语。 2646- [STABLE] `mindspore.ops.HSVToRGB` 新增算子原语。 2647- [STABLE] `mindspore.ops.Lcm` 新增算子原语。 2648- [STABLE] `mindspore.ops.LeftShift` 新增算子原语。 2649- [STABLE] `mindspore.ops.ListDiff` 新增算子原语。 2650- [STABLE] `mindspore.ops.LogSpace` 新增算子原语。 2651- [STABLE] `mindspore.ops.Lstsq` 新增算子原语。 2652- [STABLE] `mindspore.ops.MatrixDiagPartV3` 新增算子原语。 2653- [STABLE] `mindspore.ops.MatrixDiagV3` 新增算子原语。 2654- [STABLE] `mindspore.ops.MatrixExp` 新增算子原语。 2655- [STABLE] `mindspore.ops.MatrixPower` 新增算子原语。 2656- [STABLE] `mindspore.ops.MaxPool3DWithArgmax` 新增算子原语。 2657- [STABLE] `mindspore.ops.MaxUnpool2D` 新增算子原语。 2658- [STABLE] `mindspore.ops.MultilabelMarginLoss` 新增算子原语。 2659- [STABLE] `mindspore.ops.NextAfter` 新增算子原语。 2660- [STABLE] `mindspore.ops.Orgqr` 新增算子原语。 2661- [STABLE] `mindspore.ops.ReduceStd` 新增算子原语。 2662- [STABLE] `mindspore.ops.RGBToHSV` 新增算子原语。 2663- [STABLE] `mindspore.ops.RightShift` 新增算子原语。 2664- [STABLE] `mindspore.ops.SampleDistortedBoundingBoxV2` 新增算子原语。 2665- [STABLE] `mindspore.ops.ScaleAndTranslate` 新增算子原语。 2666- [STABLE] `mindspore.ops.ScatterAddWithAxis` 新增算子原语。 2667- [STABLE] `mindspore.ops.ScatterNdDiv` 新增算子原语。 2668- [STABLE] `mindspore.ops.ScatterNdMax` 新增算子原语。 2669- [STABLE] `mindspore.ops.ScatterNdMul` 新增算子原语。 2670- [STABLE] `mindspore.ops.STFT` 新增算子原语。 2671- [STABLE] `mindspore.ops.Trace` 新增算子原语。 2672- [STABLE] `mindspore.ops.UpsampleNearest3D` 新增算子原语。 2673- [STABLE] `mindspore.ops.UpsampleTrilinear3D` 新增算子原语。 2674- [STABLE] `mindspore.parallel.transform_checkpoints` 新增分布式权重转换接口。 2675- [STABLE] `mindspore.parallel.transform_checkpoint_by_rank` 新增分布式权重转换接口。 2676 2677#### 非兼容性变更 2678 2679##### Python API 2680 2681- `mindspore.ms_function`接口名替换为`mindspore.jit`,`mindspore.ms_function` 将在未来版本中弃用并删除。 2682- `mindspore.ms_class`接口名替换为`mindspore.jit_class`,`mindspore.ms_class` 将在未来版本中弃用并删除。 2683- `mindspore.ops.ms_kernel`接口名替换为`mindspore.ops.kernel`,`mindspore.ops.ms_kernel` 将在未来版本中弃用并删除。 2684- `mindspore.dataset.map`接口参数 `column_order` 不再生效,使用`mindspore.dataset.project`替换。 2685- `mindspore.dataset.close_pool`、`mindspore.dataset.to_device`、`mindspore.dataset.set_dynamic_columns` 接口在之前版本已废弃,当前版本正式删除。 2686 2687### Bug fixes 2688 2689- 修复混合精度函数式接口在图模式下不能修改后端驱动的问题。 2690- 修复以下网络在单P场景下用户可自动传入device_id(mobilenetv1/fasterrcnn/yolov3/yolov4/yolov5/unet/openpose/simplepose/crnn/gnmtv2/faceattribute/facequality/facedetection) 。 2691 2692### 贡献者 2693 2694感谢以下人员做出的贡献: 2695 2696AGroupofProbiotocs, anzhengqi, askmiao, baihuawei, baiyangfan, bai-yangfan, bingyaweng, BowenK, buxue, caifubi, CaoJian, caojian05, caozhou, Cathy, changzherui, chenbo116, chenfei, chengxianbin, chenhaozhe, chenjianping, chenzomi, chenzupeng, chujinjin, cj, cjh9368, Corleone, damon0626, danish, Danish, davidmc, dayschan, doitH, dong-li001, fary86, fuzhiye, Gaoxiong, GAO_HYP_XYJ, gengdongjie, Gogery, gongdaguo, gray0v0, gukecai, guoqi, gzhcv, hangq, hanhuifeng2020, Harshvardhan, He, heleiwang, hesham, hexia, Hoai, HuangBingjian, huangdongrun, huanghui, huangxinjing, huqi, huzhifeng, hwjiaorui, Jiabin Liu, jianghui58, Jiaqi, jin-xiulang, jinyaohui, jjfeing, John, jonyguo, JulyAi, jzg, kai00, kingfo, kingxian, kpy, kswang, liuyongqi, laiyongqiang, leonwanghui, liangchenghui, liangzelang, lichen_101010, lichenever, lihongkang, lilei, limingqi107, ling, linqingke, Lin Xh, liubuyu, liuwenhao4, liuxiao78, liuxiao93, liuyang_655, liuzhongkai, Lixia, lixian, liyanliu, liyong, lizhenyu, luopengting, lvchangquan, lvliang, lz, maning202007, Margaret_wangrui, mengyuanli, Ming_blue, ms_yan, ougongchang, panfengfeng, panyifeng, Payne, Peilin, peixu_ren, Pengyongrong, qianlong, qianjiahong, r1chardf1d0, riemann_penn, rmdyh, Sheng, shenwei41, simson, Simson, Su, sunsuodong, tao_yunhao, tinazhang, VectorSL, , Wan, wandongdong, wangdongxu, wangmin, wangyue01, wangzhe, wanyiming, Wei, wenchunjiang, wilfChen, WilliamLian, wsc, wudenggang, wukesong, wuweikang, wuxuejian, Xiao Tianci, Xiaoda, xiefangqi, xinyunfan, xuanyue, xuyongfei, yanghaitao, yanghaitao1, yanghaoran, YangLuo, yangruoqi713, yankai, yanzhenxiang2020, yao_yf, yepei6, yeyunpeng, Yi, yoni, yoonlee666, yuchaojie, yujianfeng, yuximiao, zengzitao, Zhang, zhanghuiyao, zhanghui_china, zhangxinfeng3, zhangyihui, zhangz0911gm, zhanke, zhanyuan, zhaodezan, zhaojichen, zhaoting, zhaozhenlong, zhengjun10, zhiqwang, zhoufeng, zhousiyi, zhouyaqiang, zhouyifengCode, Zichun, Ziyan, zjun, ZPaC, wangfengwfwf, zymaa, gerayking, shu-kun-zhang. 2697 2698欢迎以任何形式对项目提供贡献! 2699 2700## MindSpore 1.10.1 Release Notes 2701 2702### 问题修复 2703 2704- 修复logsumexp防溢出处理中未考虑指定axis的问题 2705- 修复proto文件的编译依赖问题 2706- 修复print算子打印结果不正常的问题 2707- 修复equal算子越界问题 2708- 修复函数被@jit修饰后,导致的cell_id解析不正确的问题 2709- 修复GNN场景数据类型校验错误 2710- 修复Dataset map多进程退化成线程的问题 2711 2712### 贡献者 2713 2714感谢以下人员做出的贡献: 2715 2716archer2049, caifubi, chenfei_mindspore, gaoshuanglong, Greatpan, guozhijian, huoxinyou, Kxiong, lanzhineng, lijunbin, liubuyu, liuchuting, luochao60, lyqlola, nomindcarry, TuDouNi, xiaotianci, xupan, yangshuo, yefeng, YingtongHu, yuchaojie, zhoufeng, ZPaC, 刘勇琪, 吕昱峰, 王禹程, 于振华. 2717 2718欢迎以任何形式对项目提供贡献! 2719 2720## MindSpore 1.10.0 Release Notes 2721 2722### 主要特性和增强 2723 2724#### DataSet 2725 2726- [STABLE]下沉模式超时等待时间调整,默认调整到600s,以解决数据下沉模式时因环境资源竞争、计算量大等因素容易导致GetNext算子等待超时的问题。 2727 2728### Bug fixes 2729 2730- 修复AMP中部分Primitive算子无法在图模式下实例化导致接口不可用的问题。 2731- 修复昇腾平台算力切分场景下LSTM网络中DynamicRNN算子执行失败的问题。 2732- 修复mobilenet, fasterrcnn, yolo等网络单卡训练脚本DEVICE_ID在启动脚本中写死的问题。 2733 2734### 贡献者 2735 2736感谢以下人员做出的贡献: 2737 2738AGroupofProbiotocs, anzhengqi, askmiao, baihuawei, baiyangfan, bai-yangfan, bingyaweng, BowenK, buxue, caifubi, CaoJian, caojian05, caozhou, Cathy, changzherui, chenbo116, chenfei, chengxianbin, chenhaozhe, chenjianping, chenzomi, chenzupeng, chujinjin, cj, cjh9368, Corleone, damon0626, danish, Danish, davidmc, dayschan, doitH, dong-li001, fary86, fuzhiye, Gaoxiong, GAO_HYP_XYJ, gengdongjie, Gogery, gongdaguo, gray0v0, gukecai, guoqi, gzhcv, hangq, hanhuifeng2020, Harshvardhan, He, heleiwang, hesham, hexia, Hoai, HuangBingjian, huangdongrun, huanghui, huangxinjing, huqi, huzhifeng, hwjiaorui, Jiabin Liu, jianghui58, Jiaqi, jin-xiulang, jinyaohui, jjfeing, John, jonyguo, JulyAi, jzg, kai00, kingfo, kingxian, kpy, kswang, liuyongqi, laiyongqiang, leonwanghui, liangchenghui, liangzelang, lichen_101010, lichenever, lihongkang, lilei, limingqi107, ling, linqingke, Lin Xh, liubuyu, liuwenhao4, liuxiao78, liuxiao93, liuyang_655, liuzhongkai, Lixia, lixian, liyanliu, liyong, lizhenyu, luopengting, lvchangquan, lvliang, lz, maning202007, Margaret_wangrui, mengyuanli, Ming_blue, ms_yan, ougongchang, panfengfeng, panyifeng, Payne, Peilin, peixu_ren, Pengyongrong, qianlong, qianjiahong, r1chardf1d0, riemann_penn, rmdyh, Sheng, shenwei41, simson, Simson, Su, sunsuodong, tao_yunhao, tinazhang, VectorSL, , Wan, wandongdong, wangdongxu, wangmin, wangyue01, wangzhe, wanyiming, Wei, wenchunjiang, wilfChen, WilliamLian, wsc, wudenggang, wukesong, wuweikang, wuxuejian, Xiao Tianci, Xiaoda, xiefangqi, xinyunfan, xuanyue, xuyongfei, yanghaitao, yanghaitao1, yanghaoran, YangLuo, yangruoqi713, yankai, yanzhenxiang2020, yao_yf, yepei6, yeyunpeng, Yi, yoni, yoonlee666, yuchaojie, yujianfeng, yuximiao, zengzitao, Zhang, zhanghuiyao, zhanghui_china, zhangxinfeng3, zhangyihui, zhangz0911gm, zhanke, zhanyuan, zhaodezan, zhaojichen, zhaoting, zhaozhenlong, zhengjun10, zhiqwang, zhoufeng, zhousiyi, zhouyaqiang, zhouyifengCode, Zichun, Ziyan, zjun, ZPaC, wangfengwfwf, zymaa, gerayking, shu-kun-zhang. 2739 2740欢迎以任何形式对项目提供贡献! 2741 2742## MindSpore Lite 1.10.0 Release Notes 2743 2744### Bug fixes 2745 2746- 修复Arithmetic类CPU算子动态shape场景下可能的计算精度问题。 2747- 修复Deconv int8量化算子重量化写入地址错误问题。 2748 2749## MindSpore 1.9.0 Release Notes 2750 2751### 主要特性和增强 2752 2753#### FrontEnd 2754 2755- [STABLE] 新增面向对象+函数式融合编程范式,提供 `mindspore.amp.LossScaler` 、 `mindspore.amp.DynamicLossScaler` 、 `mindspore.amp.StaticLossScaler` 、 `mindspore.amp.auto_mixed_precision` 、 `mindspore.amp.all_finite` 等融合编程范式下的混合精度接口。 2756 2757### API变更 2758 2759#### 算子 2760 2761- [STABLE] `nn.AdaptiveAvgPool3d` 新增nn接口。 2762- [STABLE] `ops.adaptive_avg_pool3d` 新增functional接口。 2763- [STABLE] `ops.addcdiv` 新增functional接口。 2764- [STABLE] `ops.addcmul` 新增functional接口。 2765- [STABLE] `ops.approximate_equal` 新增GPU、CPU支持。 2766- [STABLE] `ops.atanh` 新增GPU支持。 2767- [STABLE] `ops.bessel_i0` 新增GPU支持。 2768- [STABLE] `ops.bessel_i0e` 新增Ascend支持。 2769- [STABLE] `ops.bessel_i1` 新增GPU支持。 2770- [STABLE] `ops.bessel_i1e` 新增Ascend、GPU支持。 2771- [STABLE] `ops.bessel_j0` 新增GPU支持。 2772- [STABLE] `ops.bessel_j1` 新增GPU支持。 2773- [STABLE] `ops.bessel_k0` 新增GPU支持。 2774- [STABLE] `ops.bessel_k0e` 新增GPU支持。 2775- [STABLE] `ops.bessel_k1` 新增GPU支持。 2776- [STABLE] `ops.bessel_k1e` 新增GPU支持。 2777- [STABLE] `ops.bessel_y0` 新增GPU支持。 2778- [STABLE] `ops.bessel_y1` 新增GPU支持。 2779- [STABLE] `ops.bias_add` 新增functional接口。 2780- [STABLE] `ops.bitwise_and` 新增GPU支持。 2781- [STABLE] `ops.bitwise_or` 新增GPU支持。 2782- [STABLE] `ops.bitwise_xor` 新增GPU支持。 2783- [STABLE] `ops.grid_sample` 新增Ascend支持。 2784- [STABLE] `ops.inplace_update` 新增CPU支持。 2785- [STABLE] `ops.isclose` 新增Ascend、GPU支持。 2786- [STABLE] `ops.isnan` 新增Ascend支持。 2787- [STABLE] `ops.lerp` 新增GPU支持。 2788- [STABLE] `ops.random_poisson` 新增functional接口。 2789- [STABLE] `ops.reverse_sequence` 新增functional接口。 2790- [STABLE] `ops.scatter_mul` 新增GPU支持。 2791- [STABLE] `ops.scatter_nd_max` 新增functional接口。 2792- [STABLE] `ops.scatter_nd_min` 新增functional接口。 2793- [STABLE] `ops.SparseToDense` 新增GPU支持。 2794- [STABLE] `ops.square` 新增functional接口。 2795- [STABLE] `ops.standard_laplace` 新增GPU支持。 2796- [STABLE] `ops.std` 新增functional接口。 2797- [STABLE] `ops.trunc` 新增Ascend、GPU支持。 2798- [STABLE] `ops.unsorted_segment_sum` 新增functional接口。 2799- [STABLE] `ops.xdivy` 新增functional接口。 2800- [STABLE] `ops.xlogy` 新增GPU支持。 2801- `ops.poisson` 接口废弃使用,对应新接口为 `ops.random_poisson` 。 2802- `ops.SparseApplyAdagrad` 接口废弃使用,可使用 `ops.SparseApplyAdagradV2` 接口替代。 2803 2804### Bug fixes 2805 2806- [BUGFIX] 修改混合精度O2 level的判断逻辑,在原来屏蔽 `BatchNorm1d` 、 `BatchNorm2d` 算子的基础上,添加另外两个屏蔽算子`BatchNorm3d`和`LayerNorm`,这4个算子依然用float32数据类型计算。 2807 2808- [BUGFIX] Dataset处理字符串类型数据时,若调用`create_dict_iterator`或`create_tuple_iterator`接口时指定了`output_numpy=True`,获取到的数据会是`numpy.bytes_`类型。修复此问题后接口会直接返回`numpy.str_`类型数据,用户无需再对其进行字符串解码操作。同样,在使用自定义数据处理函数时,接收到的数据也将直接是`numpy.str_`类型,与原始数据类型相匹配。 2809 2810### 贡献者 2811 2812感谢以下人员做出的贡献: 2813 2814AGroupofProbiotocs, anzhengqi, askmiao, baihuawei, baiyangfan, bai-yangfan, bingyaweng, BowenK, buxue, caifubi, CaoJian, caojian05, caozhou, Cathy, changzherui, chenbo116, chenfei, chengxianbin, chenhaozhe, chenjianping, chenzomi, chenzupeng, chujinjin, cj, cjh9368, Corleone, damon0626, danish, Danish, davidmc, dayschan, doitH, dong-li001, fary86, fuzhiye, Gaoxiong, GAO_HYP_XYJ, gengdongjie, Gogery, gongdaguo, gray0v0, gukecai, guoqi, gzhcv, hangq, hanhuifeng2020, Harshvardhan, He, hesham, hexia, Hoai, HuangBingjian, huangdongrun, huanghui, huangxinjing, huqi, huzhifeng, hwjiaorui, Jiabin Liu, jianghui58, Jiaqi, jin-xiulang, jinyaohui, jjfeing, John, jonyguo, JulyAi, jzg, kai00, kingfo, kingxian, kpy, kswang, liuyongqi, laiyongqiang, leonwanghui, liangchenghui, liangzelang, lichen_101010, lichenever, lihongkang, lilei, limingqi107, ling, linqingke, Lin Xh, liubuyu, liuwenhao4, liuxiao78, liuxiao93, liuyang_655, liuzhongkai, liyanliu, lizhenyu, lvchangquan, lvliang, lz, maning202007, Margaret_wangrui, mengyuanli, Ming_blue, ms_yan, panfengfeng, panyifeng, Payne, peixu_ren, Pengyongrong, qianjiahong, r1chardf1d0, riemann_penn, rmdyh, Sheng, shenwei41, simson, Simson, Su, sunsuodong, tao_yunhao, tinazhang, VectorSL, Wan, wandongdong, wangdongxu, wangmin, wangyue01, wangzhe, wanyiming, Wei, wenchunjiang, wilfChen, WilliamLian, wsc, wudenggang, wukesong, wuweikang, Xiao Tianci, Xiaoda, xiefangqi, xinyunfan, xuanyue, xuyongfei, yanghaitao, yanghaoran, YangLuo, yangruoqi713, yankai, yanzhenxiang2020, yao_yf, yepei6, yeyunpeng, Yi, yoni, yoonlee666, yuchaojie, yujianfeng, yuximiao, zengzitao, Zhang, zhanghuiyao, zhanghui_china, zhangxinfeng3, zhangyihui, zhangz0911gm, zhanyuan, zhaojichen, zhaoting, zhaozhenlong, zhengjun10, zhiqwang, zhoufeng, zhousiyi, zhouyaqiang, zhouyifengCode, Zichun, Ziyan, zjun, ZPaC, wangfengwfwf, zymaa, gerayking, shu-kun-zhang. 2815 2816欢迎以任何形式对项目提供贡献! 2817 2818## MindSpore 1.8.1 Release Notes 2819 2820### API变更 2821 2822#### 算子 2823 2824- [STABLE] ops.ApplyAdagradDA 新增GPU、CPU支持。 2825- [STABLE] ops.ApplyAdagradV2 新增CPU支持。 2826- [STABLE] ops.ApplyCenteredRmsProp 新增Ascend动态shape支持。 2827- [STABLE] ops.ApplyFtrl 新增CPU支持。 2828- [STABLE] ops.ApplyGradientDescent 新增CPU支持。 2829- [STABLE] ops.ApplyPowerSign 新增CPU支持。 2830- [STABLE] ops.ApplyProximalAdagrad 新增GPU、CPU支持。 2831- [STABLE] ops.ApplyRmsProp 新增Ascend动态shape支持。 2832- [STABLE] ops.max 新增functional接口。 2833- [STABLE] ops.atan2 新增functional接口。 2834- [STABLE] ops.cummax 新增GPU支持。 2835- [STABLE] ops.cummin 新增GPU、CPU支持。 2836- [STABLE] ops.diag 新增GPU支持。 2837- [STABLE] ops.expand_dims 新增functional接口。 2838- [STABLE] ops.gather_elements 新增functional接口。 2839- [STABLE] ops.grid_sample 新增GPU支持。 2840- [STABLE] ops.hardswish 新增Ascend支持。 2841- [BETA] ops.index_fill 新增GPU支持。 2842- [BETA] ops.inplace_update 新增CPU支持。 2843- [BETA] nn.InstanceNorm1d 新增GPU支持。 2844- [BETA] nn.InstanceNorm2d 新增GPU支持。 2845- [BETA] nn.InstanceNorm3d 新增GPU支持。 2846- [STABLE] ops.log1p 新增functional接口。 2847- [STABLE] ops.masked_fill 新增GPU、CPU支持。 2848- [BETA] ops.matrix_diag_part 新增GPU支持。 2849- [BETA] ops.matrix_diag 新增GPU支持。 2850- [BETA] ops.matrix_set_diag 新增GPU支持。 2851- [STABLE] ops.max_pool3d 新增GPU支持。 2852- [STABLE] ops.nll_loss 新增functional接口。 2853- [STABLE] ops.one_hot 新增functional接口。 2854- [STABLE] ops.pad 新增functional接口。 2855- [STABLE] ops.random_gamma 新增CPU支持。 2856- [STABLE] ops.amax 新增functional接口。 2857- [STABLE] ops.mean 新增functional接口。 2858- [STABLE] ops.amin 新增functional接口。 2859- [STABLE] ops.prod 新增functional接口。 2860- [STABLE] ops.renorm 新增Ascend、GPU、CPU支持。 2861- [BETA] ops.tensor_scatter_elements 新增Ascend、GPU、CPU支持。 2862- [STABLE] ops.scatter_max 新增GPU支持。 2863- [STABLE] ops.scatter_min 新增GPU支持。 2864- [STABLE] ops.scatter_nd 新增functional接口。 2865- [STABLE] ops.scatter_nd_max 新增GPU支持。 2866- [STABLE] ops.scatter_update 新增functional接口。 2867- [STABLE] ops.binary_cross_entropy_with_logits 新增CPU支持。 2868- [STABLE] ops.smooth_l1_loss 新增functional接口。 2869- [STABLE] ops.space_to_batch_nd 新增CPU支持。 2870- [STABLE] ops.SparseApplyAdagrad 新增GPU、CPU支持。 2871- [STABLE] ops.sparse_segment_mean 新增GPU、CPU支持。 2872- [STABLE] ops.squeeze 新增functional接口。 2873- [STABLE] ops.standard_laplace 新增CPU支持。 2874- [BETA] nn.ReflectionPad1d 新增Ascend、GPU、CPU支持。 2875- [BETA] nn.ReflectionPad2d 新增Ascend、GPU、CPU支持。 2876- [STABLE] nn.SiLU 新增Ascend、GPU、CPU支持。 2877- [STABLE] ops.transpose 新增functional接口。 2878- [STABLE] ops.uniform_candidate_sampler 新增CPU支持。 2879- [STABLE] ops.uniform 新增functional接口。 2880- [STABLE] ops.unique_with_pad 新增GPU支持。 2881- [STABLE] ops.unstack 新增functional接口。 2882- [BETA] ops.interpolate 新增GPU、CPU支持。 2883- [STABLE] ops.xdivy 新增CPU支持。 2884- [STABLE] ops.xlogy 新增CPU支持。 2885 2886## MindSpore 1.8.0 Release Notes 2887 2888### 主要特性和增强 2889 2890#### FrontEnd 2891 2892- [BETA] 提供`mindspore.train.Model.fit` API,增加两种callback方法 `mindspore.train.callback.EarlyStopping` 和 `mindspore.train.callback.ReduceLROnPlateau`。 2893- [BETA] 自定义算子支持Julia算子。 2894- [BETA] 自定义算子支持Hybrid DSL算子。 2895- [STABLE] export()接口支持自定义加密算法导出模型,load()接口支持自定义解密算法导入模型。 2896- [BETA] [动静统一] [易用性] 图编译支持常量类型设置可变(1.8版本支持tuple/list/dict)。 2897- [BETA] [动静统一] 常量场景下控制流内支持JIT Fallback功能。 2898- [STABLE] [动静统一] 支持图模式常量场景下Python raise语句。 2899- [STABLE] [动静统一] 支持图模式常量场景下Python assert语句。 2900- [STABLE] [动静统一] 支持图模式常量场景下Python print语句。 2901- [STABLE] [动静统一] 支持图模式str.format()方法。 2902- [STABLE] [动静统一] 支持图模式用slice方法对list赋值。 2903- [STABLE] [动静统一] 图模式支持创建和调用自定义类的实例。 2904- [STABLE] [动静统一] 支持从Cell数组/自定义类数组中获取类的属性。 2905- [STABLE] [动静统一] 图模式下isinstance支持场景扩展。 2906- [STABLE] 自定义算子修饰符'ms_hybrid'重名为'ms_kernel'。 2907- [BETA] 自定义算子Hybrid DSL支持CPU后端。 2908- [BETA] 自定义算子昇腾后端新增自定义调度原语语法支持。 2909 2910#### PyNative 2911 2912- [STABLE] 实现AdamWeightDecay算子,替代原有小算子组合方式。 2913- [STABLE] 动态图下使用动静结合的方式执行优化器。 2914- [STABLE] 优化PyNative反向图和ms_function的执行性能。 2915 2916#### Auto Parallel 2917 2918- [STABLE] 对接AllToAll单算子模式。在图编译等级为O0下,支持AllToAll算子调用。 2919- [STABLE] 整图下沉支持MPI启动。整图下沉的模式下,支持使用MPI的方式启动。 2920- [STABLE] 模型权重的Seed提供并行接口配置。在用户不通过mindspore.set_seed设置随机数种子时,每个参数初始化的随机数种子为当前分片索引决定。当配置随机数种子之后,相同shape以及相同切分策略的权重,其初始化的结果一致。 2921- [STABLE] HCCL屏蔽内部全连接/非全连接。允许一次训练过程中同时有全连接AllToAllv和分级AllToAllv。 2922- [BETA] CPU优化器融合。通过优化器跨参数融合,将多个优化器算子按数据类型融合成,带来性能提升。目前已在CPU AdamWeightDecay优化器上做过验证。用户可以通过网络cell类中的flatten_weights方法启用该功能。 2923 2924#### Executor 2925 2926- [STABLE] 开放南向芯片对接接口。 2927- [STABLE] 使用多Actor融合执行提升运行时的执行性能。 2928- [STABLE] NopOp算子(eg. Reshape)执行消除。 2929- [STABLE] Embedding Cache架构切换统一分布式运行时。 2930- [STABLE] Parameter Server训练切换统一分布式运行时。 2931- [STABLE] 支持CPU Parameter Server模式训练。 2932 2933#### DataSet 2934 2935- [STABLE] 对于数据集对象使用map操作时,同时num_parallel_workers>1并且python_multiprocessing=True时,进行了多进程的机制优化,使得数据通道与子进程一一映射,避免了过多的文件句柄占用,同时close_pool这个接口也被删除。 2936- [STABLE] 新增一批Vision、Text和Audio类数据增强操作。 2937- [STABLE] 修复数据集类的flat_map方法未将结果展平的错误。 2938- [STABLE] 统一数据集增强API的导入路径,提供更简单的使用方法,请参阅[最新的API用法](https://www.mindspore.cn/docs/zh-CN/r1.8/api_python/mindspore.dataset.vision.html)。 2939 2940### API变更 2941 2942#### 算子 2943 2944- [STABLE] ops.adaptive_avg_pool2d 新增GPU支持。 2945- [BETA] ops.adaptive_max_pool2d 新增Ascend、GPU、CPU支持。 2946- [BETA] ops.approximate_equal 新增CPU支持。 2947- [STABLE] ops.argmin 新增CPU支持。 2948- [BETA] ops.assign_sub 新增CPU支持。 2949- [STABLE] ops.bernoulli 新增GPU支持。 2950- [BETA] ops.bessel_i0 新增CPU支持。 2951- [BETA] ops.bessel_i0e 新增CPU支持。 2952- [BETA] ops.bessel_i1 新增CPU支持。 2953- [BETA] ops.bessel_i1e 新增CPU支持。 2954- [STABLE] ops.bessel_j0 新增CPU支持。 2955- [STABLE] ops.bessel_j1 新增CPU支持。 2956- [STABLE] ops.bessel_k0 新增CPU支持。 2957- [STABLE] ops.bessel_k0e 新增CPU支持。 2958- [BETA] ops.bessel_k1 新增CPU支持。 2959- [BETA] ops.bessel_k1e 新增CPU支持。 2960- [STABLE] ops.bessel_y0 新增CPU支持。 2961- [STABLE] ops.bessel_y1 新增CPU支持。 2962- [STABLE] ops.bitwise_and 新增CPU支持。 2963- [STABLE] ops.bitwise_or 新增CPU支持。 2964- [STABLE] ops.bitwise_xor 新增CPU支持。 2965- [STABLE] ops.broadcast_to 新增functional接口。 2966- [BETA] ops.ceil 新增GPU、CPU支持。 2967- [BETA] ops.col2im 新增GPU支持。 2968- [BETA] ops.concat 新增functional接口。 2969- [STABLE] ops.cosh 新增GPU支持。 2970- [STABLE] ops.ctc_greedy_decoder 新增Ascend、CPU支持。 2971- [BETA] ops.DataFormatDimMap 新增GPU、CPU支持。 2972- [BETA] ops.dropout2d 新增GPU、CPU支持。 2973- [BETA] ops.dropout3d 新增CPU支持。 2974- [BETA] ops.erf 新增CPU支持。 2975- [BETA] ops.erfc 新增CPU支持。 2976- [STABLE] ops.expand_dims 新增functional接口。 2977- [STABLE] ops.fast_gelu 新增GPU、CPU支持。 2978- [STABLE] ops.flatten Ascend动态shape支持。 2979- [BETA] ops.ger 新增GPU、CPU支持。 2980- [STABLE] ops.gumbel_softmax 新增Ascend、GPU、CPU支持。 2981- [BETA] ops.hardshrink 新增GPU、CPU支持。 2982- [BETA] ops.index_add 新增CPU支持。 2983- [BETA] ops.inplace_add 新增CPU支持。 2984- [BETA] ops.inplace_sub 新增CPU支持。 2985- [STABLE] ops.intopk 新增CPU支持。 2986- [STABLE] ops.inv 新增GPU、CPU支持。 2987- [STABLE] ops.invert 新增GPU、CPU支持。 2988- [BETA] ops.isclose 新增CPU支持。 2989- [STABLE] ops.lerp 新增CPU支持。 2990- [BETA] ops.linspace 新增CPU支持。 2991- [BETA] ops.log_softmax 新增functional接口。 2992- [BETA] ops.norm 新增Ascend、GPU、CPU支持。 2993- [BETA] ops.lrn 新增CPU支持。 2994- [BETA] ops.masked_select 新增GPU支持。 2995- [BETA] ops.matrix_band_part 新增GPU、CPU支持。 2996- [BETA] ops.matrix_solve 新增GPU、CPU支持。 2997- [BETA] ops.meshgrid 新增CPU支持。 2998- [STABLE] ops.mish 新增CPU支持。 2999- [BETA] ops.nonzero 新增GPU支持。 3000- [STABLE] ops.padding 新增GPU、CPU支持。 3001- [BETA] ops.pow 新增Ascend动态shape支持。 3002- [BETA] ops.range 新增functional接口。 3003- [BETA] ops.round 新增Ascend动态shape支持。 3004- [STABLE] ops.scatter_add 新增Ascend动态shape支持。 3005- [STABLE] ops.scatter_div 新增Ascend动态shape支持。 3006- [BETA] ops.scatter_max 新增GPU支持。 3007- [BETA] ops.scatter_min 新增GPU支持。 3008- [BETA] ops.scatter_nd_add 新增CPU支持。 3009- [STABLE] ops.scatter_nd_div 新增GPU、CPU支持。 3010- [STABLE] ops.scatter_nd_min 新增GPU、CPU支持。 3011- [STABLE] ops.scatter_nd_mul 新增GPU、CPU支持。 3012- [BETA] ops.scatter_nd_sub 新增CPU支持。 3013- [STABLE] ops.scatter_update 新增Ascend动态shape支持。 3014- [BETA] ops.select 新增Ascend动态shape支持。 3015- [BETA] ops.selu 新增GPU、CPU支持。 3016- [BETA] ops.soft_shrink 新增GPU、CPU支持。 3017- [BETA] ops.softsign 新增CPU支持。 3018- [STABLE] ops.tan 新增GPU支持。 3019- [BETA] ops.tensor_scatter_add 新增Ascend、CPU支持。 3020- [STABLE] ops.tensor_scatter_div 新增GPU、CPU支持。 3021- [STABLE] ops.tensor_scatter_mul 新增GPU、CPU支持。 3022- [BETA] ops.tensor_scatter_sub 新增Ascend、CPU支持。 3023- [STABLE] nn.AdaptiveAvgPool1d 新增Ascend、GPU、CPU支持。 3024- [STABLE] nn.AdaptiveMaxPool1d 新增Ascend、GPU、CPU支持。 3025- [BETA] nn.BiDense 新增Ascend、GPU、CPU支持。 3026- [STABLE] nn.ConstantPad1d 新增Ascend、GPU、CPU支持。 3027- [STABLE] nn.ConstantPad2d 新增Ascend、GPU、CPU支持。 3028- [STABLE] nn.ConstantPad3d 新增Ascend、GPU、CPU支持。 3029- [STABLE] nn.Hardtanh 新增Ascend、GPU、CPU支持。 3030- [STABLE] nn.HuberLoss 新增Ascend、GPU、CPU支持。 3031- [STABLE] nn.RReLU 新增Ascend、GPU、CPU支持。 3032- [STABLE] nn.Tanhshrink 新增Ascend、GPU、CPU支持。 3033- [STABLE] nn.Threshold 新增Ascend、GPU、CPU支持。 3034- [STABLE] nn.ZeroPad2d 新增Ascend、GPU、CPU支持。 3035- [BETA] ops.unique_consecutive 新增GPU支持。 3036- [STABLE] ops.unsorted_segment_max 新增CPU支持。 3037- [STABLE] ops.unsorted_segment_min 新增CPU支持。 3038- [STABLE] ops.unsorted_segment_prod 新增GPU支持。 3039 3040#### 非兼容性变更 3041 3042##### Python API 3043 3044- 不再支持DVPP模拟算法,删除 `mindspore.dataset.vision.c_transforms.SoftDvppDecodeRandomCropResizeJpeg` 和 `mindspore.dataset.vision.c_transforms.SoftDvppDecodeResizeJpeg` 接口。 3045- LossMonitor中增加`on_train_epoch_end` 方法,实现在 `mindspore.train.Model.fit` 中使用时,打印epoch级别的metric信息。 3046- TimeMonitor打印内容变更,打印内容加入"train"或"eval"用于区分训练和推理阶段。 3047- load_checkpoint 接口的`filter_prefix`:不再支持空字符串(""),匹配规则由强匹配修改为模糊匹配。 3048 3049#### import优化 3050 3051mindspore.context、mindspore.parallel、mindspore.profiler、mindspore.train模块的接口可直接在mindspore模块使用。原有用法仍可以继续支持。 3052 3053例如: 3054 3055- `mindspore.context.set_context`可简化为`mindspore.set_context`。 3056- `mindspore.parallel.set_algo_parameters`可简化为`mindspore.set_algo_parameters`。 3057- `mindspore.profiler.Profiler`可简化为`mindspore.Profiler`。 3058- `mindspore.train.callback.Callback`可简化为`mindspore.train.Callback`。 3059 3060API页面统一汇总至:<https://www.mindspore.cn/docs/zh-CN/r1.8/api_python/mindspore.html>。 3061 3062### 贡献者 3063 3064感谢以下人员做出的贡献: 3065 3066AGroupofProbiotocs, anzhengqi, askmiao, baihuawei, baiyangfan, bai-yangfan, bingyaweng, BowenK, buxue, caifubi, CaoJian, caojian05, caozhou, Cathy, changzherui, chenbo116, chenfei, chengxianbin, chenhaozhe, chenjianping, chenzomi, chenzupeng, chujinjin, cj, cjh9368, Corleone, damon0626, danish, Danish, davidmc, dayschan, doitH, dong-li001, fary86, fuzhiye, Gaoxiong, GAO_HYP_XYJ, gengdongjie, Gogery, gongdaguo, gray0v0, gukecai, guoqi, gzhcv, hangq, hanhuifeng2020, Harshvardhan, He, heleiwang, hesham, hexia, Hoai, HuangBingjian, huangdongrun, huanghui, huangxinjing, huqi, huzhifeng, hwjiaorui, Jiabin Liu, jianghui58, Jiaqi, jin-xiulang, jinyaohui, jjfeing, John, jonyguo, JulyAi, jzg, kai00, kingfo, kingxian, kpy, kswang, liuyongqi, laiyongqiang, leonwanghui, liangchenghui, liangzelang, lichen_101010, lichenever, lihongkang, lilei, limingqi107, ling, linqingke, Lin Xh, liubuyu, liuwenhao4, liuxiao78, liuxiao93, liuyang_655, liuzhongkai, Lixia, lixian, liyanliu, liyong, lizhenyu, luopengting, lvchangquan, lvliang, lz, maning202007, Margaret_wangrui, mengyuanli, Ming_blue, ms_yan, ougongchang, panfengfeng, panyifeng, Payne, Peilin, peixu_ren, Pengyongrong, qianlong, qianjiahong, r1chardf1d0, riemann_penn, rmdyh, Sheng, shenwei41, simson, Simson, Su, sunsuodong, tao_yunhao, tinazhang, VectorSL, , Wan, wandongdong, wangdongxu, wangmin, wangyue01, wangzhe, wanyiming, Wei, wenchunjiang, wilfChen, WilliamLian, wsc, wudenggang, wukesong, wuweikang, wuxuejian, Xiao Tianci, Xiaoda, xiefangqi, xinyunfan, xuanyue, xuyongfei, yanghaitao, yanghaitao1, yanghaoran, YangLuo, yangruoqi713, yankai, yanzhenxiang2020, yao_yf, yepei6, yeyunpeng, Yi, yoni, yoonlee666, yuchaojie, yujianfeng, yuximiao, zengzitao, Zhang, zhanghuiyao, zhanghui_china, zhangxinfeng3, zhangyihui, zhangz0911gm, zhanke, zhanyuan, zhaodezan, zhaojichen, zhaoting, zhaozhenlong, zhengjun10, zhiqwang, zhoufeng, zhousiyi, zhouyaqiang, zhouyifengCode, Zichun, Ziyan, zjun, ZPaC, wangfengwfwf, zymaa, gerayking, shu-kun-zhang. 3067 3068欢迎以任何形式对项目提供贡献! 3069 3070## MindSpore Lite 1.8.0 Release Notes 3071 3072### 主要特性和增强 3073 3074#### API 3075 3076- [STABLE] 新增模型转换的C++和Python API. 3077- [STABLE] 新增模型推理的Python API. 3078 3079#### 后量化 3080 3081- [STABLE] 后量化支持PerLayer量化,同时内置CLE算法优化精度。 3082 3083## MindSpore 1.7.0 Release Notes 3084 3085### 主要特性和增强 3086 3087#### OS 3088 3089- [STABLE] 支持Python 3.8版本(Linux/Windows/Mac)。 3090- [STABLE] 简化安装,提供详细安装指南和自动化安装脚本。 3091- [STABLE] Windows版本支持算子多线程。 3092- [STABLE] GCC兼容7.3到9.x版本。 3093 3094#### FrontEnd 3095 3096- [STABLE] 优化器支持动态权重衰减,即训练期间权重衰减值随着step的增加而变化。 3097- [STABLE] 增加四种创建Tensor的方法,分别是`mindspore.numpy.rand()`、`mindspore.numpy.randn()`、`mindspore.numpy.randint()`和`mindspore.ops.arange ()`。 3098- [STABLE] 增加一种callback方法 `mindspore.train.callback.History`。 3099- [BETA] 自定义算子支持Julia算子。 3100- [STABLE] 通过 `mindspore.ms_class` 类装饰器,支持获取用户自定义类的属性和方法。 3101- [STABLE] 支持同时存在副作用算子和控制流语句的网络的训练。 3102- [STABLE] 支持更复杂的控制流语法,比如在while的循环体里使用for语句。 3103- [STABLE] 通过减少子图数量,提升包含复杂控制流语法的网络的性能。 3104 3105#### PyNative 3106 3107- [STABLE] 在PyNative模式下支持hook函数功能,包括前向hook接口register_forward_pre_hook、register_forward_hook和反向hook接口register_backward_hook。 3108- [STABLE] 优化PyNative模式执行性能,并行执行前端Python与后端C++。 3109 3110#### Auto Parallel 3111 3112- [STABLE] 在MoE场景中支持TopK的路由、数据并行和优化器切分。 3113- [STABLE] 支持AllGather/ReduceScatter通信算子融合,在DATA_PARALLEL模式支持AllReduce按数据量大小编译。 3114- [STABLE] 在并行模式下支持ops.clip_by_global_norm。 3115- [STABLE] 在并行模式下支持AdaSum优化器。 3116- [STABLE] 支持自动优化器切分。 3117- [STABLE] 支持AlltoAll可配置开启,支持自动插入VirtualDatasetCell。 3118- [STABLE] 在流水线并行训练中,支持自动推断可训练的参数。 3119- [STABLE] 支持集群的设备数目不为2的幂次方。 3120- [STABLE] 在自动并行模式中支持策略传播。 3121- [STABLE] 在统一运行时中支持异构训练。 3122- [STABLE] 支持CPU的Adafactor算子。 3123- [STABLE] 支持Conv2d/Conv2D的H/W轴切分和Transpose算子。支持ResizeBilinear、ROIAlign、CropAndResize、BoundingBoxEncode、IOU和RandomChoiceWithMask等分布式算子。 3124 3125#### Executor 3126 3127- [BETA] [数据并行训练容灾](https://www.mindspore.cn/tutorials/experts/zh-CN/r1.7/parallel/train_gpu.html#%E5%AE%B9%E7%81%BE%E6%81%A2%E5%A4%8D) 支持多卡数据并行训练容灾恢复。 3128- [BETA] 支持在CPU下的线程数搜索,获取最优线程数来执行。整个搜索过程需要耗时50个steps,整体的性能会在50个steps后达到稳定的状态。在测试性能的时候,需要以50个steps之后的数据作为标准。 3129 3130#### DataSet 3131 3132- [STABLE] 增加了数据处理API的差异文档,比较TensorFlow.data与MindSpore.dataset部分算子的差异,详见 [对比文档](https://www.mindspore.cn/docs/zh-CN/r1.7/note/api_mapping/tensorflow_api_mapping.html#tf-data)。 3133- [STABLE] Python多进程逻辑优化,保证不同异常场景的正常退出。 3134- [STABLE] 支持[自动数据加速](https://www.mindspore.cn/tutorials/experts/zh-CN/master/dataset/dataset_autotune.html),可以自适应调节数据处理管道的执行速度。 3135- [BETA] [数据处理异构加速](https://www.mindspore.cn/tutorials/experts/zh-CN/master/dataset/dataset_offload.html) 支持了新的数据增强操作: RandomColorAdjust、RandomSharpness和TypeCast。 3136- GeneratorDataset加载自定义数据集时,当`__getitem__/__next__`方法返回单个NumPy对象,对应会输出单个数据列。 3137- 用户在数据预处理中使用过多的进程数/线程数情况下,会出现错误RuntimeError: can't start new thread,可以通过 `ulimit -u 10240` 增加当前用户可用的线程/进程数解决。 3138 3139### API变更 3140 3141#### 非兼容性变更 3142 3143##### Python API 3144 3145- 修改register_backward_hook功能对应hook的梯度返回值类型,将梯度返回值统一改成tuple类型。([!31876](https://gitee.com/mindspore/mindspore/pulls/31876)) 3146- 弃用的import用法: `import mindspore.dataset.engine.datasets as ds` ,因其import目录过深且过度依赖Python目录结构。推荐使用 `import mindspore.dataset as ds` ,更多参考详见 [API文档](https://www.mindspore.cn/docs/zh-CN/r1.7/api_python/mindspore.dataset.html)。 3147- 新增`mindspore.ms_class` 接口,作为用户自定义类的类装饰器,使得MindSpore能够识别用户自定义类,并且获取这些类的属性和方法。([!30855](https://gitee.com/mindspore/mindspore/pulls/30855)) 3148- `mindspore.SparseTensor`接口废弃使用,对应新接口为`mindspore.COOTensor`。 ([!28505](https://gitee.com/mindspore/mindspore/pulls/28505)) 3149- Tensor新增一个入参`internal`,作为框架内部使用。 3150 3151### 贡献者 3152 3153感谢以下人员做出的贡献: 3154 3155AGroupofProbiotocs, anzhengqi, askmiao, baihuawei, baiyangfan, bai-yangfan, bingyaweng, BowenK, buxue, caifubi, CaoJian, caojian05, caozhou, Cathy, changzherui, chenbo116, chenfei, chengxianbin, chenhaozhe, chenjianping, chenzomi, chenzupeng, chujinjin, cj, cjh9368, Corleone, damon0626, danish, Danish, davidmc, dayschan, doitH, dong-li001, fary86, fuzhiye, Gaoxiong, GAO_HYP_XYJ, gengdongjie, Gogery, gongdaguo, gray0v0, gukecai, guoqi, gzhcv, hangq, hanhuifeng2020, Harshvardhan, He, heleiwang, hesham, hexia, Hoai, HuangBingjian, huangdongrun, huanghui, huangxinjing, huqi, huzhifeng, hwjiaorui, Jiabin Liu, jianghui58, Jiaqi, jin-xiulang, jinyaohui, jjfeing, John, jonyguo, JulyAi, jzg, kai00, kingfo, kingxian, kpy, kswang, liuyongqi, laiyongqiang, leonwanghui, liangchenghui, liangzelang, lichen_101010, lichenever, lihongkang, lilei, limingqi107, ling, linqingke, Lin Xh, liubuyu, liuwenhao4, liuxiao78, liuxiao93, liuyang_655, liuzhongkai, Lixia, lixian, liyanliu, liyong, lizhenyu, luopengting, lvchangquan, lvliang, lz, maning202007, Margaret_wangrui, mengyuanli, Ming_blue, ms_yan, ougongchang, panfengfeng, panyifeng, Payne, Peilin, peixu_ren, Pengyongrong, qianlong, qianjiahong, r1chardf1d0, riemann_penn, rmdyh, Sheng, shenwei41, simson, Simson, Su, sunsuodong, tao_yunhao, tinazhang, VectorSL, , Wan, wandongdong, wangdongxu, wangmin, wangyue01, wangzhe, wanyiming, Wei, wenchunjiang, wilfChen, WilliamLian, wsc, wudenggang, wukesong, wuweikang, wuxuejian, Xiao Tianci, Xiaoda, xiefangqi, xinyunfan, xuanyue, xuyongfei, yanghaitao, yanghaitao1, yanghaoran, YangLuo, yangruoqi713, yankai, yanzhenxiang2020, yao_yf, yepei6, yeyunpeng, Yi, yoni, yoonlee666, yuchaojie, yujianfeng, yuximiao, zengzitao, Zhang, zhanghuiyao, zhanghui_china, zhangxinfeng3, zhangyihui, zhangz0911gm, zhanke, zhanyuan, zhaodezan, zhaojichen, zhaoting, zhaozhenlong, zhengjun10, zhiqwang, zhoufeng, zhousiyi, zhouyaqiang, zhouyifengCode, Zichun, Ziyan, zjun, ZPaC, wangfengwfwf, zymaa, gerayking. 3156 3157欢迎以任何形式对项目提供贡献! 3158 3159## MindSpore Lite 1.7.0 Release Notes 3160 3161### 主要特性和增强 3162 3163#### 后量化 3164 3165- [STABLE] 后量化支持动态量化算法。 3166- [BETA] 后量化模型支持在英伟达GPU上执行推理。 3167