建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
直达楼层
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

采纳成功

您已采纳当前回复为最佳回复

Tianyi_Li

发帖: 386粉丝: 212

发消息 + 关注

发表于2021年02月15日 22:41:30 292 5
直达本楼层的链接
楼主
显示全部楼层
[技术干货] 一起来看看MindSpore最新版本的新特性!

![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202102/15/223924u57bz66gg5w3do09.png) [View English](#) - [MindSpore介绍](#) - [自动微分](#) - [自动并行](#) - [安装](#) - [pip方式安装](#) - [源码编译方式安装](#) - [Docker镜像](#) - [快速入门](#) - [文档](#) - [社区](#) - [治理](#) - [交流](#) - [贡献](#) - [分支维护策略](#) - [现有分支维护状态](#) - [版本说明](#) - [许可证](#) ## MindSpore介绍 MindSpore是一种适用于端边云场景的新型开源深度学习训练/推理框架。 MindSpore提供了友好的设计和高效的执行,旨在提升数据科学家和算法工程师的开发体验,并为Ascend AI处理器提供原生支持,以及软硬件协同优化。 同时,MindSpore作为全球AI开源社区,致力于进一步开发和丰富AI软硬件应用生态。 ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202102/15/223935skl8mo1wbb9hb0rd.png) 欲了解更多详情,请查看我们的[总体架构](https://www.mindspore.cn/doc/note/zh-CN/master/design/mindspore/architecture.html)。 ### 自动微分 当前主流深度学习框架中有三种自动微分技术: - **基于静态计算图的转换**:编译时将网络转换为静态数据流图,将链式法则应用于数据流图,实现自动微分。 - **基于动态计算图的转换**:记录算子过载正向执行时网络的运行轨迹,对动态生成的数据流图应用链式法则,实现自动微分。 - **基于源码的转换**:该技术是从功能编程框架演进而来,以即时编译(Just-in-time Compilation,JIT)的形式对中间表达式(程序在编译过程中的表达式)进行自动差分转换,支持复杂的控制流场景、高阶函数和闭包。 TensorFlow早期采用的是静态计算图,PyTorch采用的是动态计算图。静态映射可以利用静态编译技术来优化网络性能,但是构建网络或调试网络非常复杂。动态图的使用非常方便,但很难实现性能的极限优化。 MindSpore找到了另一种方法,即基于源代码转换的自动微分。一方面,它支持自动控制流的自动微分,因此像PyTorch这样的模型构建非常方便。另一方面,MindSpore可以对神经网络进行静态编译优化,以获得更好的性能。 ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202102/15/223945t0tpcxmyndgk0nln.png) MindSpore自动微分的实现可以理解为程序本身的符号微分。MindSpore IR是一个函数中间表达式,它与基础代数中的复合函数具有直观的对应关系。复合函数的公式由任意可推导的基础函数组成。MindSpore IR中的每个原语操作都可以对应基础代数中的基本功能,从而可以建立更复杂的流控制。 ### 自动并行 MindSpore自动并行的目的是构建数据并行、模型并行和混合并行相结合的训练方法。该方法能够自动选择开销最小的模型切分策略,实现自动分布并行训练。 ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202102/15/223956h2arnec3dqzmrdmh.png) 目前MindSpore采用的是算子切分的细粒度并行策略,即图中的每个算子被切分为一个集群,完成并行操作。在此期间的切分策略可能非常复杂,但是作为一名Python开发者,您无需关注底层实现,只要顶层API计算是有效的即可。 ## 安装 ### pip方式安装 MindSpore提供跨多个后端的构建选项: | 硬件平台 | 操作系统 | 状态 | | :------------ | :-------------- | :--- | | Ascend 910 | Ubuntu-x86 | ✔️ | | | Ubuntu-aarch64 | ✔️ | | | EulerOS-aarch64 | ✔️ | | | CentOS-x86 | ✔️ | | | CentOS-aarch64 | ✔️ | | GPU CUDA 10.1 | Ubuntu-x86 | ✔️ | | CPU | Ubuntu-x86 | ✔️ | | | Ubuntu-aarch64 | ✔️ | | | Windows-x86 | ✔️ | 使用`pip`命令安装,以`CPU`和`Ubuntu-x86`build版本为例: 1. 请从[MindSpore下载页面](https://www.mindspore.cn/versions)下载并安装whl包。 ```bash pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.1/MindSpore/cpu/ubuntu_x86/mindspore-1.1.1-cp37-cp37m-linux_x86_64.whl ``` 2. 执行以下命令,验证安装结果。 ```python import numpy as np import mindspore.context as context import mindspore.nn as nn from mindspore import Tensor from mindspore.ops import operations as P context.set_context(mode=context.GRAPH_MODE, device_target="CPU") class Mul(nn.Cell): def __init__(self): super(Mul, self).__init__() self.mul = P.Mul() def construct(self, x, y): return self.mul(x, y) x = Tensor(np.array([1.0, 2.0, 3.0]).astype(np.float32)) y = Tensor(np.array([4.0, 5.0, 6.0]).astype(np.float32)) mul = Mul() print(mul(x, y)) ``` ```text [ 4. 10. 18.] ``` 使用pip方式,在不同的环境安装MindSpore,可参考以下文档。 - [Ascend环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_pip.md) - [GPU环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_pip.md) - [CPU环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_pip.md) ### 源码编译方式安装 使用源码编译方式,在不同的环境安装MindSpore,可参考以下文档。 - [Ascend环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_source.md) - [GPU环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_source.md) - [CPU环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_source.md) ### Docker镜像 MindSpore的Docker镜像托管在[Docker Hub](#)上。 目前容器化构建选项支持情况如下: | 硬件平台 | Docker镜像仓库 | 标签 | 说明 | | :----- | :------------------------ | :----------------------- | :--------------------------------------- | | CPU | `mindspore/mindspore-cpu` | `x.y.z` | 已经预安装MindSpore `x.y.z` CPU版本的生产环境。 | | | | `devel` | 提供开发环境从源头构建MindSpore(`CPU`后端)。安装详情请参考 。 | | | | `runtime` | 提供运行时环境安装MindSpore二进制包(`CPU`后端)。 | | GPU | `mindspore/mindspore-gpu` | `x.y.z` | 已经预安装MindSpore `x.y.z` GPU版本的生产环境。 | | | | `devel` | 提供开发环境从源头构建MindSpore(`GPU CUDA10.1`后端)。安装详情请参考 。 | | | | `runtime` | 提供运行时环境安装MindSpore二进制包(`GPU CUDA10.1`后端)。 | | Ascend | — | — | 即将推出,敬请期待。 | > **注意:** 不建议从源头构建GPU `devel` Docker镜像后直接安装whl包。我们强烈建议您在GPU `runtime` Docker镜像中传输并安装whl包。 - CPU 对于`CPU`后端,可以直接使用以下命令获取并运行最新的稳定镜像: ```bash docker pull mindspore/mindspore-cpu:1.1.1 docker run -it mindspore/mindspore-cpu:1.1.1 /bin/bash ``` - GPU 对于`GPU`后端,请确保`nvidia-container-toolkit`已经提前安装,以下是`Ubuntu`用户安装指南: ```bash DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2 sudo systemctl restart docker ``` 编辑文件 daemon.json: ```bash $ vim /etc/docker/daemon.json { "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } } ``` 再次重启docker: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` 使用以下命令获取并运行最新的稳定镜像: ```bash docker pull mindspore/mindspore-gpu:1.1.1 docker run -it -v /dev/shm:/dev/shm --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.1.1 /bin/bash ``` 要测试Docker是否正常工作,请运行下面的Python代码并检查输出: ```python import numpy as np import mindspore.context as context from mindspore import Tensor from mindspore.ops import functional as F context.set_context(mode=context.PYNATIVE_MODE, device_target="GPU") x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) print(F.tensor_add(x, y)) ``` ```text [[[ 2. 2. 2. 2.], [ 2. 2. 2. 2.], [ 2. 2. 2. 2.]], [[ 2. 2. 2. 2.], [ 2. 2. 2. 2.], [ 2. 2. 2. 2.]], [[ 2. 2. 2. 2.], [ 2. 2. 2. 2.], [ 2. 2. 2. 2.]]] ``` 如果您想了解更多关于MindSpore Docker镜像的构建过程,请查看[docker](#) repo了解详细信息。 ## 快速入门 参考[快速入门](https://www.mindspore.cn/tutorial/training/zh-CN/master/quick_start/quick_start.html)实现图片分类。 ## 文档 有关安装指南、教程和API的更多详细信息,请参阅[用户文档](https://gitee.com/mindspore/docs)。 ## 社区 ### 治理 查看MindSpore如何进行[开放治理](https://gitee.com/mindspore/community/blob/master/governance.md)。 ### 交流 - [MindSpore Slack](#) 开发者交流平台。 - `#mindspore`IRC频道(仅用于会议记录) - 视频会议:待定 - 邮件列表: ## 贡献 欢迎参与贡献。更多详情,请参阅我们的[贡献者Wiki](#)。 ## 分支维护策略 MindSpore的版本分支有以下几种维护阶段: | **状态** | **持续时间** | **说明** | |-------------|---------------|--------------------------------------------------| | Planning | 1 - 3 months | 特性规划。 | | Development | 3 months | 特性开发。 | | Maintained | 6 - 12 months | 允许所有问题修复的合入,并发布版本。 | | Unmaintained| 0 - 3 months | 允许所有问题修复的合入,无专人维护,不再发布版本。 | | End Of Life (EOL) | N/A | 不再接受修改合入该分支。 | ## 现有分支维护状态 | **分支名** | **当前状态** | **上线时间** | **后续状态** | **EOL 日期** | |--------|--------------|----------------------|-----------------------------------|------------| | **r1.2** | Development | 2021-03-31 estimated | Maintained
2021-03-31 estimated | | | **r1.1** | Maintained | 2020-12-31 | Unmaintained
2021-06-30 estimated | | | **r1.0** | Maintained | 2020-09-24 | Unmaintained
2021-03-30 estimated | | | **r0.7** | Unmaintained | 2020-08-31 | End Of Life
2021-02-28 estimated | | | **r0.6** | End Of Life | 2020-07-31 | | 2020-12-30 | | **r0.5** | Maintained | 2020-06-30 | Unmaintained
2021-06-30 estimated | | | **r0.3** | End Of Life | 2020-05-31 | | 2020-09-30 | | **r0.2** | End Of Life | 2020-04-30 | | 2020-08-31 | | **r0.1** | End Of Life | 2020-03-28 | | 2020-06-30 | ## 版本说明 版本说明请参阅[RELEASE](#)。 ## 许可证 [Apache License 2.0](#) ## 原文链接 https://gitee.com/mindspore/mindspore/blob/r1.1/README_CN.md#
举报
分享

分享文章到朋友圈

分享文章到微博

采纳成功

您已采纳当前回复为最佳回复
发表于2021年02月16日 12:23:56
直达本楼层的链接
沙发
显示全部楼层

感谢分享

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

Jack20

发帖: 191粉丝: 173

发消息 + 关注

发表于2021年02月16日 16:06:13
直达本楼层的链接
板凳
显示全部楼层

感谢分享

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

小小啦啦

发帖: 118粉丝: 2

发消息 + 关注

发表于2021年02月19日 08:59:59
直达本楼层的链接
地板
显示全部楼层

感谢分享

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

小小啦啦

发帖: 118粉丝: 2

发消息 + 关注

发表于2021年02月19日 11:32:28
直达本楼层的链接
5#
显示全部楼层

感谢分享

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

小强鼓掌

发帖: 168粉丝: 2

发消息 + 关注

发表于2021年02月19日 14:22:27
直达本楼层的链接
6#
显示全部楼层

xuexi

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册

结贴

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200