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))
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))
View English
MindSpore介绍
MindSpore是一种适用于端边云场景的新型开源深度学习训练/推理框架。 MindSpore提供了友好的设计和高效的执行,旨在提升数据科学家和算法工程师的开发体验,并为Ascend AI处理器提供原生支持,以及软硬件协同优化。
同时,MindSpore作为全球AI开源社区,致力于进一步开发和丰富AI软硬件应用生态。
欲了解更多详情,请查看我们的总体架构。
自动微分
当前主流深度学习框架中有两种自动微分技术:
PyTorch采用的是操作符重载法。相较于代码变换法,操作符重载法是在运行时生成微分计算图的, 无需考虑函数调用与控制流等情况, 开发更为简单。 但该方法不能在编译时刻做微分图的优化, 控制流也需要根据运行时的信息来展开, 很难实现性能的极限优化。
MindSpore则采用的是代码变换法。一方面,它支持自动控制流的自动微分,因此像PyTorch这样的模型构建非常方便。另一方面,MindSpore可以对神经网络进行静态编译优化,以获得更好的性能。
MindSpore自动微分的实现可以理解为程序本身的符号微分。MindSpore IR是一个函数中间表达式,它与基础代数中的复合函数具有直观的对应关系。复合函数的公式由任意可推导的基础函数组成。MindSpore IR中的每个原语操作都可以对应基础代数中的基本功能,从而可以建立更复杂的流控制。
自动并行
MindSpore自动并行的目的是构建数据并行、模型并行和混合并行相结合的训练方法。该方法能够自动选择开销最小的模型切分策略,实现自动分布并行训练。
目前MindSpore采用的是算子切分的细粒度并行策略,即图中的每个算子被切分为一个集群,完成并行操作。在此期间的切分策略可能非常复杂,但是作为一名Python开发者,您无需关注底层实现,只要顶层API计算是有效的即可。
安装
pip方式安装
MindSpore提供跨多个后端的构建选项:
使用
pip
命令安装,以CPU
和Ubuntu-x86
build版本为例:请从MindSpore下载页面下载并安装whl包。
执行以下命令,验证安装结果。
使用pip方式,在不同的环境安装MindSpore,可参考以下文档。
源码编译方式安装
使用源码编译方式,在不同的环境安装MindSpore,可参考以下文档。
Docker镜像
MindSpore的Docker镜像托管在Docker Hub上。 目前容器化构建选项支持情况如下:
mindspore/mindspore-cpu
x.y.z
x.y.z
CPU版本的生产环境。devel
CPU
后端)。安装详情请参考https://www.mindspore.cn/install 。runtime
CPU
后端)。mindspore/mindspore-gpu
x.y.z
x.y.z
GPU版本的生产环境。devel
GPU CUDA10.1
后端)。安装详情请参考https://www.mindspore.cn/install 。runtime
GPU CUDA10.1
后端)。CPU
对于
CPU
后端,可以直接使用以下命令获取并运行最新的稳定镜像:GPU
对于
GPU
后端,请确保nvidia-container-toolkit
已经提前安装,以下是Ubuntu
用户安装指南:编辑文件 daemon.json:
再次重启docker:
使用以下命令获取并运行最新的稳定镜像:
要测试Docker是否正常工作,请运行下面的Python代码并检查输出:
如果您想了解更多关于MindSpore Docker镜像的构建过程,请查看docker repo了解详细信息。
快速入门
参考快速入门实现图片分类。
文档
有关安装指南、教程和API的更多详细信息,请参阅用户文档。
社区
治理
查看MindSpore如何进行开放治理。
交流
#mindspore
IRC频道(仅用于会议记录)贡献
欢迎参与贡献。更多详情,请参阅我们的贡献者Wiki。
分支维护策略
MindSpore的版本分支有以下几种维护阶段:
现有分支维护状态
2024-02-02 estimated
2023-10-26 estimated
2023-07-29 estimated
2023-04-29 estimated
版本说明
版本说明请参阅RELEASE。
许可证
Apache License 2.0