From e434f5816c2f33dbb941b40ee16f8fb1a55e1618 Mon Sep 17 00:00:00 2001 From: lvmingfu <630944715@qq.com> Date: Sat, 29 Aug 2020 17:20:18 +0800 Subject: [PATCH] modify files in docs for r0.7 --- api/source_zh_cn/index.rst | 6 - .../programming_guide/api_structure.md | 37 -- .../images/api_structure.png | Bin 22544 -> 0 bytes api/source_zh_cn/programming_guide/nn.md | 28 -- api/source_zh_cn/programming_guide/ops.md | 126 ------ api/source_zh_cn/programming_guide/tensor.md | 369 ------------------ tutorials/notebook/linear_regression.ipynb | 10 +- .../quick_start/linear_regression.md | 7 +- 8 files changed, 10 insertions(+), 573 deletions(-) delete mode 100644 api/source_zh_cn/programming_guide/api_structure.md delete mode 100644 api/source_zh_cn/programming_guide/images/api_structure.png delete mode 100644 api/source_zh_cn/programming_guide/nn.md delete mode 100644 api/source_zh_cn/programming_guide/ops.md delete mode 100644 api/source_zh_cn/programming_guide/tensor.md diff --git a/api/source_zh_cn/index.rst b/api/source_zh_cn/index.rst index 63b9597aef..b0be7f2174 100644 --- a/api/source_zh_cn/index.rst +++ b/api/source_zh_cn/index.rst @@ -6,12 +6,6 @@ MindSpore API ============= -.. toctree:: - :maxdepth: 1 - :caption: 编程指南 - - programming_guide/api_structure - .. toctree:: :maxdepth: 1 :caption: MindSpore Python API diff --git a/api/source_zh_cn/programming_guide/api_structure.md b/api/source_zh_cn/programming_guide/api_structure.md deleted file mode 100644 index 9a42ef6642..0000000000 --- a/api/source_zh_cn/programming_guide/api_structure.md +++ /dev/null @@ -1,37 +0,0 @@ -# MindSpore API概述 - - - -- [MindSpore API概述](#mindsporeapi概述) - - [设计理念](#设计理念) - - [层次结构](#层次结构) - - - - - -## 设计理念 - -MindSpore源于全产业的最佳实践,向数据科学家和算法工程师提供了统一的模型训练、推理和导出等接口,支持端、边、云等不同场景下的灵活部署,推动深度学习和科学计算等领域繁荣发展。 - -MindSpore提供了动态图和静态图统一的编码方式,用户无需开发多套代码,仅变更一行代码便可切换动态图/静态图模式,从而拥有更轻松的开发调试及性能体验。 - -此外,由于MindSpore统一了单机和分布式训练的编码方式,开发者无需编写复杂的分布式策略,在单机代码中添加少量代码即可实现分布式训练,大大降低了AI开发门槛。 - -## 层次结构 - -MindSpore向用户提供了3个不同层次的API,支撑用户进行网络构建、整图执行、子图执行以及单算子执行,从低到高分别为Low-Level Python API、Medium-Level Python API以及High-Level Python API。 - -![img](./images/api_structure.png) - -- Low-Level Python API - - 第一层为低阶API,主要包括张量定义、基础算子、自动微分等模块,用户可使用低阶API轻松实现张量操作和求导计算。 - -- Medium-Level Python API - - 第二层为中阶API,其封装了低价API,提供网络层、优化器、损失函数等模块,用户可通过中阶API灵活构建神经网络和控制执行流程,快速实现模型算法逻辑。 - -- High-Level Python API - - 第三层为高阶API,其在中阶API的基础上又提供了训练推理的管理、Callback、混合精度训练等高级接口,方便用户控制整网的执行流程和实现神经网络的训练及推理。 diff --git a/api/source_zh_cn/programming_guide/images/api_structure.png b/api/source_zh_cn/programming_guide/images/api_structure.png deleted file mode 100644 index 9bb9f2c1f4402e4b404f76720725b10b27a4a89e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22544 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 L>Pq=H&4d06WQ5FA diff --git a/api/source_zh_cn/programming_guide/nn.md b/api/source_zh_cn/programming_guide/nn.md deleted file mode 100644 index a1bb61ec96..0000000000 --- a/api/source_zh_cn/programming_guide/nn.md +++ /dev/null @@ -1,28 +0,0 @@ -# nn模块 - - - -MindSpore的nn模块是Python实现的模型组件,是对低阶API的封装,主要包括各种模型层、损失函数、优化器等。 - -同时nn也提供了部分与Primitive算子同名的接口,主要作用是对Primitive算子进行进一步封装,为用户提供更友好的API。 - -代码样例如下: -```python -import numpy as np -from mindspore.common.tensor import Tensor -import mindspore.nn as nn -import mindspore - -net = nn.PSNR() -img1 = Tensor(np.random.random((1,3,16,16)), mindspore.float32) -img2 = Tensor(np.random.random((1,3,16,16)), mindspore.float32) -output = net(img1, img2) -print("output =", output) -``` - -输出如下: -``` -output = [7.6338434] -``` - -各种模型层、损失函数、优化器等代码样例正在完善中。 diff --git a/api/source_zh_cn/programming_guide/ops.md b/api/source_zh_cn/programming_guide/ops.md deleted file mode 100644 index 53bb69f5df..0000000000 --- a/api/source_zh_cn/programming_guide/ops.md +++ /dev/null @@ -1,126 +0,0 @@ -# ops模块 - - - -- [ops模块](#ops模块) - - [mindspore.ops.operations](#mindsporeopsoperations) - - [mindspore.ops.functional](#mindsporeopsfunctional) - - [mindspore.ops.composite](#mindsporeopscomposite) - - - - - -MindSpore的ops模块主要存放算子相关接口,同时包含算子的校验和正反向关联的逻辑。 - -ops主要包括operations、functional和composite,可通过ops直接获取到这三类算子。 -- operations提供单个的Primtive算子。一个算子对应一个原语,是最小的执行对象,需要实例化之后使用。 -- composite提供一些预定义的组合算子,以及复杂的涉及图变换的算子,如`GradOperation`。 -- functional提供operations和composite实例化后的对象,简化算子的调用流程。 - -## mindspore.ops.operations - -operations提供了所有的Primitive算子接口,是开放给用户的最低阶算子接口。算子支持情况可查询[算子支持列表](https://www.mindspore.cn/docs/zh-CN/master/operator_list.html#mindspore-ops-operations)。 - -Primitive算子也称为算子原语,它直接封装了底层的Ascend、GPU、AICPU、CPU等多种算子的具体实现,为用户提供基础算子能力。 - -Primitive算子接口是构建高阶接口、自动微分、网络模型等能力的基础。 - -代码样例如下: -```python -import numpy as np -import mindspore -from mindspore import Tensor -import mindspore.ops.operations as P - -input_x = mindspore.Tensor(np.array([1.0, 2.0, 4.0]), mindspore.float32) -input_y = 3.0 -pow = P.Pow() -output = pow(input_x, input_y) -print("output =", output) -``` - -输出如下: -``` -output = [ 1. 8. 64.] -``` - -## mindspore.ops.functional - -为了简化没有属性的算子的调用流程,MindSpore提供了一些算子的functional版本。入参要求参考原算子的输入输出要求。算子支持情况可以查询[算子支持列表](https://www.mindspore.cn/docs/zh-CN/master/operator_list.html#mindspore-ops-functional)。 - -例如`P.Pow`算子,我们提供了functional版本的`F.tensor_pow`算子。 - -使用functional的代码样例如下: - -```python -import numpy as np -import mindspore -from mindspore import Tensor -from mindspore.ops import functional as F - -input_x = mindspore.Tensor(np.array([1.0, 2.0, 4.0]), mindspore.float32) -input_y = 3.0 -output = F.tensor_pow(input_x, input_y) -print("output =", output) -``` - -输出如下: -``` -output = [ 1. 8. 64.] -``` - -## mindspore.ops.composite - -composite提供了一些算子的组合,包括clip_by_value和random相关的一些算子,以及涉及图变换的函数(`GradOperation`、`HyperMap`和`Map`等)。 - -算子的组合可以直接像一般函数一样使用,例如使用`normal`生成一个随机分布: -```python -from mindspore.common import dtype as mstype -from mindspore.ops import composite as C -from mindspore import Tensor - -mean = Tensor(1.0, mstype.float32) -stddev = Tensor(1.0, mstype.float32) -output = C.normal((2, 3), mean, stddev, seed=5) -print("ouput =", output) -``` -输出如下: -``` -output = [[2.4911082 0.7941146 1.3117087] - [0.30582333 1.772938 1.525996]] -``` - -> 以上代码运行于MindSpore的GPU版本。 - -针对涉及图变换的函数,用户可以使用`MultitypeFuncGraph`定义一组重载的函数,根据不同类型,走到不同实现。 - -代码样例如下: -```python -import numpy as np -from mindspore.ops.composite import MultitypeFuncGraph -from mindspore import Tensor -from mindspore.ops import functional as F - -add = MultitypeFuncGraph('add') -@add.register("Number", "Number") -def add_scalar(x, y): - return F.scalar_add(x, y) - -@add.register("Tensor", "Tensor") -def add_tensor(x, y): - return F.tensor_add(x, y) - -tensor1 = Tensor(np.array([[1.2, 2.1], [2.2, 3.2]]).astype('float32')) -tensor2 = Tensor(np.array([[1.2, 2.1], [2.2, 3.2]]).astype('float32')) -print('tensor', add(tensor1, tensor2)) -print('scalar', add(1, 2)) -``` -输出如下: -``` -tensor [[2.4, 4.2] - [4.4, 6.4]] -scalar 3 -``` - -此外,高阶函数`GradOperation`提供了根据输入的函数,求这个函数对应的梯度函数的方式,详细可以参阅[API文档](https://www.mindspore.cn/api/zh-CN/master/api/python/mindspore/mindspore.ops.composite.html#mindspore.ops.composite.GradOperation)。 \ No newline at end of file diff --git a/api/source_zh_cn/programming_guide/tensor.md b/api/source_zh_cn/programming_guide/tensor.md deleted file mode 100644 index c935dc71bb..0000000000 --- a/api/source_zh_cn/programming_guide/tensor.md +++ /dev/null @@ -1,369 +0,0 @@ -# 张量 - - - -- [张量](#张量) - - [概述](#概述) - - [常量张量](#常量张量) - - [变量张量](#变量张量) - - [张量的属性和方法](#张量的属性和方法) - - [属性](#属性) - - [方法](#方法) - - [张量操作](#张量操作) - - [结构操作](#结构操作) - - [数学运算](#数学运算) - - [广播](#广播) - - - - - -## 概述 - -张量是MindSpore网络运算中的基本数据结构,即为多维数组,分为常量张量(Tensor)和变量张量(Parameter),常量张量的值在网络中不能被改变,而变量张量的值则可以被更新。 - -张量里的数据分为不同的类型,支持的类型有int8、int16、int32、int64、uint8、uint16、uint32、uint64、float16、float32、float64、bool_,与NumPy里的数据类型一一对应。 - -不同维度的张量分别表示不同的数据,0维张量表示标量,1维张量表示向量,2维张量表示矩阵,3维张量可以表示彩色图像的RGB三通道等等。 - -> 本文档中的所有示例,都是在PyNative模式下运行的,暂不支持CPU。 - -## 常量张量 - -常量张量的值在网络中不能被改变,构造时支持传入float、int、bool、tuple、list和numpy.array。 - -Tensor作为初始值可指定dtype,如果没有指定dtype,int、float、bool分别对应int32、float32、bool_,tuple和list生成的1维Tensor数据类型与tuple和list里存放数据的类型相对应。 - -代码样例如下: - -``` -import numpy as np -from mindspore import Tensor -from mindspore.common import dtype as mstype - -x = Tensor(np.array([[1, 2], [3, 4]]), mstype.int32) -y = Tensor(1.0, mstype.int32) -z = Tensor(2, mstype.int32) -m = Tensor(True, mstype.bool_) -n = Tensor((1, 2, 3), mstype.int16) -p = Tensor([4.0, 5.0, 6.0], mstype.float64) - -print(x, "\n\n", y, "\n\n", z, "\n\n", m, "\n\n", n, "\n\n", p) -``` - -输出如下: - -``` -[[1 2] - [3 4]] - -1 - -2 - -True - -[1 2 3] - -[4. 5. 6.] -``` - -## 变量张量 - -变量张量的值在网络中可以被更新,用来表示需要被更新的参数,MindSpore使用Tensor的子类Parameter构造变量张量,构造时支持传入Tensor、Initializer或者Number。 - -代码样例如下: - -``` -import numpy as np -from mindspore import Tensor, Parameter -from mindspore.common import dtype as mstype -from mindspore.common.initializer import initializer - -x = Tensor(np.arange(2*3).reshape((2, 3))) -y = Parameter(x, name="x") -z = Parameter(initializer('ones', [1, 2, 3], mstype.float32), name='y') -m = Parameter(2.0, name='m') - -print(x, "\n\n", y, "\n\n", z, "\n\n", m) -``` - -输出如下: - -``` -[[0 1 2] - [3 4 5]] - -Parameter (name=x, value=[[0 1 2] - [3 4 5]]) - -Parameter (name=y, value=[[[1. 1. 1.] - [1. 1. 1.]]]) - -Parameter (name=m, value=2.0) -``` - -## 张量的属性和方法 -### 属性 - -张量的属性包括形状(shape)和数据类型(dtype)。 -- 形状:Tensor的shape,是一个tuple。 -- 数据类型:Tensor的的dtype,是MindSpore的一个数据类型。 - -代码样例如下: - -``` -import numpy as np -from mindspore import Tensor -from mindspore.common import dtype as mstype - -x = Tensor(np.array([[1, 2], [3, 4]]), mstype.int32) -x_shape = x.shape -x_dtype = x.dtype - -print(x_shape, x_dtype) -``` - -输出如下: - -``` -(2, 2) Int32 -``` - -### 方法 - -张量的方法包括`all`、`any`和`asnumpy`。 -- all(axis, keep_dims):在指定维度上通过“and”操作进行归约,axis代表归约维度,keep_dims表示是否保留归约后的维度。 -- any(axis, keep_dims):在指定维度上通过“or”操作进行归约,axis代表归约维度,keep_dims表示是否保留归约后的维度。 -- asnumpy():将Tensor转换为NumPy的array。 - -代码样例如下: - -``` -import numpy as np -from mindspore import Tensor -from mindspore.common import dtype as mstype - -x = Tensor(np.array([[True, True], [False, False]]), mstype.bool_) -x_all = x.all() -x_any = x.any() -x_array = x.asnumpy() - -print(x_all, "\n\n", x_any, "\n\n", x_array) -``` - -输出如下: - -``` -False - -True - -[[ True True] - [False False]] - -``` - -## 张量操作 - -张量的操作主要包括张量的结构操作和数学运算。 - -### 结构操作 - -张量的结构操作主要包括张量创建、索引切片、维度变换和合并分割。 - -- 张量创建 - - MindSpore创建张量的算子有`Range`、`Fill`、`ScalarToArray`、`ScalarToTensor`、`TupleToArray`、`Cast`、`ZerosLike`、`OnesLike`等。 - - 代码样例如下: - - ``` - from mindspore.common import dtype as mstype - from mindspore.ops import operations as P - - x = P.Fill()(mstype.float32, (2, 2), 1) - y = P.ScalarToArray()(1.0) - z = P.TupleToArray()((1, 2, 3)) - - print(x, "\n\n", y, "\n\n", z) - ``` - - 输出如下: - - ``` - [[1. 1.] - [1. 1.]] - - 1.0 - - [1 2 3] - ``` - -- 索引切片 - - MindSpore的索引操作跟NumPy的索引操作保持一致,包括取值和赋值,支持整数索引、bool索引、None索引、切片索引、Tensor索引和混合索引。 - - 支持索引操作的算子主要有`Slice`、`StridedSlice`、`GatherV2`、`GatherNd`、`ScatterUpdate`、`ScatterNdUpdate`等。 - - 代码样例如下: - - ``` - import numpy as np - from mindspore import Tensor - from mindspore.common import dtype as mstype - - x = Tensor(np.arange(3*4*5).reshape((3, 4, 5)), mstype.int32) - indices = Tensor(np.array([[0, 1], [1, 2]]), mstype.int32) - y = x[:3, indices, 3] - - print(x, "\n\n", y) - ``` - - 输出如下: - - ``` - [[[ 0 1 2 3 4] - [ 5 6 7 8 9] - [10 11 12 13 14] - [15 16 17 18 19]] - [[20 21 22 23 24] - [25 26 27 28 29] - [30 31 32 33 34] - [35 36 37 38 39]] - [[40 41 42 43 44] - [45 46 47 48 49] - [50 51 52 53 54] - [55 56 57 58 59]]] - - [[[ 3 8] - [ 8 13]] - [[23 28] - [28 33]] - [[43 48] - [48 53]]] - ``` - -- 维度变化 - - MindSpore的维度变化,主要涉及shape改变、维度扩展、维度消除、转置,支持的算子有`Reshape`、`ExpandDims`、`Squeeze`、`Transpose`、Reduce类算子,具体含义如下: - - `Reshape`:改变张量的shape,改变前后张量中元素个数保持一致。 - - `ExpanDims`:在张量里插入一维,长度为1。 - - `Squeeze`:将张量里长度为1的维度消除。 - - `Transpose`:将张量转置,交换维度。 - - Reduce类算子:对张量在指定维度上按照一定计算规则进行归约,Tensor的`all`和`any`接口就是归约操作中的两种。 - - 代码样例如下: - - ``` - import numpy as np - from mindspore import Tensor - from mindspore.ops import operations as P - - x = Tensor(np.arange(2*3).reshape((1, 2, 3))) - y = P.Reshape()(x, (1, 3, 2)) - z = P.ExpandDims()(x, 1) - m = P.Squeeze(axis=0)(x) - n = P.Transpose()(x, (2, 0, 1)) - - print(x, "\n\n", y, "\n\n", z, "\n\n", m, "\n\n", n) - ``` - - 输出如下: - - ``` - [[[0 1 2] - [3 4 5]]] - - [[[0 1] - [2 3] - [4 5]]] - - [[[[0 1 2] - [3 4 5]]]] - - [[0 1 2] - [3 4 5]] - - [[[0 3]] - [[1 4]] - [[2 5]]] - - ``` - -- 合并分割 - - MindSpore可以将多个张量合并为一个,也可以将一个张量拆分成多个,支持的算子有`Pack`、`Concat`和`Split`,具体含义如下: - - `Pack`:将多个Tensor打包成一个,会增加一个维度,增加维度的长度等于参与打包算子的个数。 - - `Concat`:将多个Tensor在某一个维度上进行拼接,不会增加维度。 - - `Split`:将一个Tensor进行拆分。 - - 代码样例如下: - - ``` - import numpy as np - from mindspore import Tensor - from mindspore.ops import operations as P - - x = Tensor(np.arange(2*3).reshape((2, 3))) - y = Tensor(np.arange(2*3).reshape((2, 3))) - z = P.Pack(axis=0)((x, y)) - m = P.Concat(axis=0)((x, y)) - n = P.Split(0, 2)(x) - - print(x, "\n\n", z, "\n\n", m, "\n\n", n) - ``` - - 输出如下: - - ``` - [[0 1 2] - [3 4 5]] - - [[[0 1 2] - [3 4 5]] - [[0 1 2] - [3 4 5]]] - - [[0 1 2] - [3 4 5] - [0 1 2] - [3 4 5]] - - (Tensor(shape=[1, 3], dtype=Int64, [[0 1 2]]), Tensor(shape=[1, 3], dtype=Int64, [[3 4 5]])) - ``` - -### 数学运算 - -数学运算主要是对张量的一些数学运算上的操作,包括加减乘除、求模求余求幂、比大小等等。支持的算子包括`TensorAdd`、`Sub`、`Mul`、`RealDiv`、`FloorMod`、`FloorDiv`、`Pow`、`Maximum`、`Minimum`等。 - -## 广播 - -MindSpore支持对张量进行广播,包括显式广播和隐式广播。显式广播为算子`Tile`,隐式广播是当两个shape不一样的张量进行运算,且它们的shape满足广播的要求时,系统会自动将这两个张量广播成shape相同的张量进行运算。 - -代码样例如下: - -``` -import numpy as np -from mindspore import Tensor -from mindspore.ops import operations as P -from mindspore.common import dtype as mstype - -x = Tensor(np.arange(2*3).reshape((2, 3)), mstype.int32) -y = P.Tile()(x, (2, 3)) - -print(x, "\n\n", y) - -``` - -输出如下: - -``` -[[0 1 2] - [3 4 5]] - -[[0 1 2 0 1 2 0 1 2] - [3 4 5 3 4 5 3 4 5] - [0 1 2 0 1 2 0 1 2] - [3 4 5 3 4 5 3 4 5]] -``` diff --git a/tutorials/notebook/linear_regression.ipynb b/tutorials/notebook/linear_regression.ipynb index b67175937c..291d0a4c5b 100644 --- a/tutorials/notebook/linear_regression.ipynb +++ b/tutorials/notebook/linear_regression.ipynb @@ -49,7 +49,9 @@ "\n", "MindSpore版本:GPU\n", "\n", - "设置MindSpore运行配置" + "设置MindSpore运行配置\n", + "\n", + "第三方支持包:`matplotlib`,未安装此包的,可使用命令`pip install matplotlib`预先安装。" ] }, { @@ -466,7 +468,7 @@ "\n", "$$w_{ud}=w_{s}-\\alpha\\frac{\\partial{J(w_{s})}}{\\partial{w}}\\tag{11}$$\n", "\n", - "当权重$w$在更新的过程中假如临近$w_{min}$在增加或者减少一个$\\Delta{w}$,从左边或者右边越过了$w_{min}$,公式10都会使权重往反的方向移动,那么最终$w_{s}$的值会在$w_{min}$附近来回迭代,在实际训练中我们也是这样采用迭代的方式取得最优权重$w$,使得损失函数无限逼近局部最小值。" + "当权重$w$在更新的过程中假如临近$w_{min}$在增加或者减少一个$\\Delta{w}$,从左边或者右边越过了$w_{min}$,公式11都会使权重往反的方向移动,那么最终$w_{s}$的值会在$w_{min}$附近来回迭代,在实际训练中我们也是这样采用迭代的方式取得最优权重$w$,使得损失函数无限逼近局部最小值。" ] }, { @@ -546,7 +548,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "`nn.RMSProp`为完成权重更新的函数,更新方式大致为公式10,但是考虑的因素更多,具体信息请参考[官网说明](https://www.mindspore.cn/api/zh-CN/master/api/python/mindspore/mindspore.nn.html?highlight=rmsprop#mindspore.nn.RMSProp)。" + "`nn.RMSProp`为完成权重更新的函数,更新方式大致为公式11,但是考虑的因素更多,具体信息请参考[官网说明](https://www.mindspore.cn/api/zh-CN/master/api/python/mindspore/mindspore.nn.html?highlight=rmsprop#mindspore.nn.RMSProp)。" ] }, { @@ -718,7 +720,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "本次体验我们了解了线性拟合的算法原理,并在MindSpore框架下实现了相应的算法定义,了解了线性拟合这类的线性回归模型在MindSpore中的训练过程,并最终拟合出了一条接近目标函数的模型函数。另外有兴趣的可以调整数据集的生成区间从(-10,10)扩展到(-100,100),看看权重值是否更接近目标函数;调整学习率大小,看看拟合的效率是否有变化;当然也可以探索如何使用MindSpore拟合$f(x)=ax^2+bx+c$这类的二次函数或者更高阶的函数。" + "本次体验我们了解了线性拟合的算法原理,并在MindSpore框架下实现了相应的算法定义,了解了线性拟合这类的线性回归模型在MindSpore中的训练过程,并最终拟合出了一条接近目标函数的模型函数。另外有兴趣的可以调整数据集的生成区间从(-10,10)扩展到(-100,100),看看权重值是否更接近目标函数;调整学习率大小,看看拟合的效率是否有变化;当然也可以探索如何使用MindSpore拟合$f(x)=ax^2+bx+c$这类的二次函数或者更高次的函数。" ] } ], diff --git a/tutorials/source_zh_cn/quick_start/linear_regression.md b/tutorials/source_zh_cn/quick_start/linear_regression.md index 18e69319de..0851968493 100644 --- a/tutorials/source_zh_cn/quick_start/linear_regression.md +++ b/tutorials/source_zh_cn/quick_start/linear_regression.md @@ -52,6 +52,7 @@ MindSpore版本:GPU 设置MindSpore运行配置 +第三方支持包:`matplotlib`,未安装此包的,可使用命令`pip install matplotlib`预先安装。 ```python from mindspore import context @@ -268,7 +269,7 @@ $$w_{ud}=w_{s}-\alpha\frac{\partial{J(w_{s})}}{\partial{w}}\tag{10}$$ $$w_{ud}=w_{s}-\alpha\frac{\partial{J(w_{s})}}{\partial{w}}\tag{11}$$ -当权重$w$在更新的过程中假如临近$w_{min}$在增加或者减少一个$\Delta{w}$,从左边或者右边越过了$w_{min}$,公式10都会使权重往反的方向移动,那么最终$w_{s}$的值会在$w_{min}$附近来回迭代,在实际训练中我们也是这样采用迭代的方式取得最优权重$w$,使得损失函数无限逼近局部最小值。 +当权重$w$在更新的过程中假如临近$w_{min}$在增加或者减少一个$\Delta{w}$,从左边或者右边越过了$w_{min}$,公式11都会使权重往反的方向移动,那么最终$w_{s}$的值会在$w_{min}$附近来回迭代,在实际训练中我们也是这样采用迭代的方式取得最优权重$w$,使得损失函数无限逼近局部最小值。 同理:对于公式5中的另一个权重$b$容易得出其更新公式为: @@ -306,7 +307,7 @@ class GradWrap(nn.Cell): ### 反向传播更新权重 -`nn.RMSProp`为完成权重更新的函数,更新方式大致为公式10,但是考虑的因素更多,具体信息请参考[官网说明](https://www.mindspore.cn/api/zh-CN/r0.7/api/python/mindspore/mindspore.nn.html?highlight=rmsprop#mindspore.nn.RMSProp)。 +`nn.RMSProp`为完成权重更新的函数,更新方式大致为公式11,但是考虑的因素更多,具体信息请参考[官网说明](https://www.mindspore.cn/api/zh-CN/r0.7/api/python/mindspore/mindspore.nn.html?highlight=rmsprop#mindspore.nn.RMSProp)。 ```python @@ -400,4 +401,4 @@ print("weight:", net.weight.default_input[0][0], "bias:", net.bias.default_input ## 总结 -本次体验我们了解了线性拟合的算法原理,并在MindSpore框架下实现了相应的算法定义,了解了线性拟合这类的线性回归模型在MindSpore中的训练过程,并最终拟合出了一条接近目标函数的模型函数。另外有兴趣的可以调整数据集的生成区间从(-10,10)扩展到(-100,100),看看权重值是否更接近目标函数;调整学习率大小,看看拟合的效率是否有变化;当然也可以探索如何使用MindSpore拟合$f(x)=ax^2+bx+c$这类的二次函数或者更高阶的函数。 +本次体验我们了解了线性拟合的算法原理,并在MindSpore框架下实现了相应的算法定义,了解了线性拟合这类的线性回归模型在MindSpore中的训练过程,并最终拟合出了一条接近目标函数的模型函数。另外有兴趣的可以调整数据集的生成区间从(-10,10)扩展到(-100,100),看看权重值是否更接近目标函数;调整学习率大小,看看拟合的效率是否有变化;当然也可以探索如何使用MindSpore拟合$f(x)=ax^2+bx+c$这类的二次函数或者更高次的函数。 -- Gitee