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。
-
-
-
-- 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