Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
docs
提交
421decef
D
docs
项目概览
MindSpore
/
docs
通知
5
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
421decef
编写于
8月 19, 2020
作者:
L
lvmingfu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add linear_regression.py in tutorial_code
上级
b1c4b611
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
86 addition
and
1 deletion
+86
-1
tutorials/notebook/README.md
tutorials/notebook/README.md
+2
-0
tutorials/source_zh_cn/quick_start/linear_regression.md
tutorials/source_zh_cn/quick_start/linear_regression.md
+10
-1
tutorials/tutorial_code/linear_regression.py
tutorials/tutorial_code/linear_regression.py
+74
-0
未找到文件。
tutorials/notebook/README.md
浏览文件 @
421decef
...
@@ -51,6 +51,7 @@
...
@@ -51,6 +51,7 @@
| 教
程
名
称 | 文
件
名
称 | 教
程
类
别 | 内
容
描
述
| 教
程
名
称 | 文
件
名
称 | 教
程
类
别 | 内
容
描
述
| :----------- | :----------- | :------- |:------
| :----------- | :----------- | :------- |:------
| 手写数字分类识别入门体验教程 |
[
quick_start.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/quick_start.ipynb
)
| 快速入门 | - CPU平台下从数据集到模型验证的全过程解读
<br/>
- 体验教程中各功能模块的使用说明
<br/>
- 数据集图形化展示
<br/>
- 了解LeNet5具体结构和参数作用
<br/>
- 学习使用自定义回调函数
<br/>
- loss值与训练步数的变化图
<br/>
- 模型精度与训练步数的变化图
<br/>
- 使用模型应用到手写图片的预测与分类上
| 手写数字分类识别入门体验教程 |
[
quick_start.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/quick_start.ipynb
)
| 快速入门 | - CPU平台下从数据集到模型验证的全过程解读
<br/>
- 体验教程中各功能模块的使用说明
<br/>
- 数据集图形化展示
<br/>
- 了解LeNet5具体结构和参数作用
<br/>
- 学习使用自定义回调函数
<br/>
- loss值与训练步数的变化图
<br/>
- 模型精度与训练步数的变化图
<br/>
- 使用模型应用到手写图片的预测与分类上
| 线性拟合 |
[
linear_regression.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/linear_regression.ipynb
)
| 快速入门 | - 了解线性拟合的算法原理
<br/>
- 了解在MindSpore中如何实现线性拟合的算法原理
<br/>
- 学习使用MindSpore实现AI训练中的正向传播和方向传播
<br/>
- 可视化线性函数拟合数据的全过程。
| 加载数据集 |
[
loading_dataset.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/loading_dataset.ipynb
)
| 使用指南 | - 学习MindSpore中加载数据集的方法
<br/>
- 展示加载常用数据集的方法
<br/>
- 展示加载MindRecord格式数据集的方法
<br/>
- 展示加载自定义格式数据集的方法
| 加载数据集 |
[
loading_dataset.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/loading_dataset.ipynb
)
| 使用指南 | - 学习MindSpore中加载数据集的方法
<br/>
- 展示加载常用数据集的方法
<br/>
- 展示加载MindRecord格式数据集的方法
<br/>
- 展示加载自定义格式数据集的方法
| 将数据集转换为MindSpore数据格式 |
[
convert_dataset_to_mindspore_data_format.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/convert_dataset_to_mindspore_data_format/convert_dataset_to_mindspore_data_format.ipynb
)
| 使用指南 | - 展示将MNIST数据集转换为MindSpore数据格式
<br/>
- 展示将CSV数据集转换为MindSpore数据格式
<br/>
- 展示将CIFAR-10数据集转换为MindSpore数据格式
<br/>
- 展示将CIFAR-100数据集转换为MindSpore数据格式
<br/>
- 展示将ImageNet数据集转换为MindSpore数据格式
<br/>
- 展示用户自定义生成MindSpore数据格式
| 将数据集转换为MindSpore数据格式 |
[
convert_dataset_to_mindspore_data_format.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/convert_dataset_to_mindspore_data_format/convert_dataset_to_mindspore_data_format.ipynb
)
| 使用指南 | - 展示将MNIST数据集转换为MindSpore数据格式
<br/>
- 展示将CSV数据集转换为MindSpore数据格式
<br/>
- 展示将CIFAR-10数据集转换为MindSpore数据格式
<br/>
- 展示将CIFAR-100数据集转换为MindSpore数据格式
<br/>
- 展示将ImageNet数据集转换为MindSpore数据格式
<br/>
- 展示用户自定义生成MindSpore数据格式
| 数据处理与数据增强 |
[
data_loading_enhancement.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/data_loading_enhance/data_loading_enhancement.ipynb
)
| 使用指南 | - 学习MindSpore中数据处理和增强的方法
<br/>
- 展示数据处理、增强方法的实际操作
<br/>
- 对比展示数据处理前和处理后的效果
<br/>
- 表述在数据处理、增强后的意义
| 数据处理与数据增强 |
[
data_loading_enhancement.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/data_loading_enhance/data_loading_enhancement.ipynb
)
| 使用指南 | - 学习MindSpore中数据处理和增强的方法
<br/>
- 展示数据处理、增强方法的实际操作
<br/>
- 对比展示数据处理前和处理后的效果
<br/>
- 表述在数据处理、增强后的意义
...
@@ -61,3 +62,4 @@
...
@@ -61,3 +62,4 @@
| MindInsight的模型溯源和数据溯源体验 |
[
mindinsight_model_lineage_and_data_lineage.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/mindinsight/mindinsight_model_lineage_and_data_lineage.ipynb
)
| 模型调优 | - 了解MindSpore中训练数据的采集及展示
<br/>
- 学习使用SummaryRecord记录数据
<br/>
- 学习使用回调函数SummaryCollector进行数据采集
<br/>
- 使用MindInsight进行数据可视化
<br/>
- 了解数据溯源和模型溯源的使用方法
| MindInsight的模型溯源和数据溯源体验 |
[
mindinsight_model_lineage_and_data_lineage.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/mindinsight/mindinsight_model_lineage_and_data_lineage.ipynb
)
| 模型调优 | - 了解MindSpore中训练数据的采集及展示
<br/>
- 学习使用SummaryRecord记录数据
<br/>
- 学习使用回调函数SummaryCollector进行数据采集
<br/>
- 使用MindInsight进行数据可视化
<br/>
- 了解数据溯源和模型溯源的使用方法
| 计算图和数据图可视化 |
[
calculate_and_datagraphic.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/mindinsight/calculate_and_datagraphic.ipynb
)
| 模型调优 | - 了解MindSpore中新增可视化功能
<br/>
- 学习使用MindInsight可视化看板
<br/>
- 学习使用查看计算图可视化图的信息的方法
<br/>
- 学习使用查看数据图中展示的信息的方法
| 计算图和数据图可视化 |
[
calculate_and_datagraphic.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/mindinsight/calculate_and_datagraphic.ipynb
)
| 模型调优 | - 了解MindSpore中新增可视化功能
<br/>
- 学习使用MindInsight可视化看板
<br/>
- 学习使用查看计算图可视化图的信息的方法
<br/>
- 学习使用查看数据图中展示的信息的方法
| 标量、直方图、图像和张量可视化 |
[
mindinsight_image_histogram_scalar_tensor.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/mindinsight/mindinsight_image_histogram_scalar_tensor.ipynb
)
| 模型调优 | - 了解完整的MindSpore深度学习及MindInsight可视化展示的过程
<br/>
- 学习使用MindInsight对训练过程中标量、直方图、图像和张量信息进行可视化展示
<br/>
- 学习使用Summary算子记录标量、直方图、图像和张量信息
<br/>
- 学习单独对标量、直方图、图像和张量信息进行记录并可视化展示的方法
| 标量、直方图、图像和张量可视化 |
[
mindinsight_image_histogram_scalar_tensor.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/mindinsight/mindinsight_image_histogram_scalar_tensor.ipynb
)
| 模型调优 | - 了解完整的MindSpore深度学习及MindInsight可视化展示的过程
<br/>
- 学习使用MindInsight对训练过程中标量、直方图、图像和张量信息进行可视化展示
<br/>
- 学习使用Summary算子记录标量、直方图、图像和张量信息
<br/>
- 学习单独对标量、直方图、图像和张量信息进行记录并可视化展示的方法
| 模型安全 |
[
model_security.ipynb
](
https://gitee.com/mindspore/docs/blob/master/tutorials/notebook/model_security.ipynb
)
| AI安全和隐私 | - 了解AI算法的安全威胁的概念和影响
<br/>
- 介绍MindArmour提供的模型安全防护手段
<br/>
- 学习如何模拟攻击训练模型
<br/>
- 学习针对被攻击模型进行对抗性防御
tutorials/source_zh_cn/quick_start/linear_regression.md
浏览文件 @
421decef
...
@@ -40,6 +40,8 @@
...
@@ -40,6 +40,8 @@
4.
定义线性拟合过程的可视化函数
4.
定义线性拟合过程的可视化函数
5.
执行训练
5.
执行训练
本次样例源代码请参考:
<https://gitee.com/mindspore/docs/blob/master/tutorials/tutorial_code/linear_regression.py>
。
## 环境准备
## 环境准备
系统:Ubuntu18.04
系统:Ubuntu18.04
...
@@ -103,6 +105,7 @@ plt.title("Eval_data")
...
@@ -103,6 +105,7 @@ plt.title("Eval_data")
plt
.
show
()
plt
.
show
()
```
```
输出结果:


...
@@ -126,6 +129,8 @@ net = nn.Dense(1,1,TruncatedNormal(0.02),TruncatedNormal(0.02))
...
@@ -126,6 +129,8 @@ net = nn.Dense(1,1,TruncatedNormal(0.02),TruncatedNormal(0.02))
print
(
"weight:"
,
net
.
weight
.
default_input
[
0
][
0
],
"bias:"
,
net
.
bias
.
default_input
[
0
])
print
(
"weight:"
,
net
.
weight
.
default_input
[
0
][
0
],
"bias:"
,
net
.
bias
.
default_input
[
0
])
```
```
输出结果:
weight: -0.00034249047 bias: -0.019308656
weight: -0.00034249047 bias: -0.019308656
...
@@ -143,6 +148,7 @@ plt.title("Eval data and net")
...
@@ -143,6 +148,7 @@ plt.title("Eval data and net")
plt
.
show
()
plt
.
show
()
```
```
输出结果:


...
@@ -351,7 +357,7 @@ def plot_model_and_datasets(weight, bias, data_x, data_y):
...
@@ -351,7 +357,7 @@ def plot_model_and_datasets(weight, bias, data_x, data_y):
5.
图形展示模型函数和数据集。
5.
图形展示模型函数和数据集。
6.
清除本轮迭代的输出
`display.clear_output`
,起到动态可视化效果。
6.
清除本轮迭代的输出
`display.clear_output`
,起到动态可视化效果。
迭代完成后,输出网络模型的权重值$w
和
b$。
迭代完成后,输出网络模型的权重值$w
$和$
b$。
```
python
```
python
...
@@ -375,6 +381,9 @@ plot_model_and_datasets(net.weight.default_input, net.bias.default_input, data_x
...
@@ -375,6 +381,9 @@ plot_model_and_datasets(net.weight.default_input, net.bias.default_input, data_x
print
(
"weight:"
,
net
.
weight
.
default_input
[
0
][
0
],
"bias:"
,
net
.
bias
.
default_input
[
0
])
print
(
"weight:"
,
net
.
weight
.
default_input
[
0
][
0
],
"bias:"
,
net
.
bias
.
default_input
[
0
])
```
```
输出结果:
loss_value: 0.42879593
loss_value: 0.42879593
...
...
tutorials/tutorial_code/linear_regression.py
0 → 100644
浏览文件 @
421decef
import
numpy
as
np
import
mindspore
as
ms
from
mindspore.ops
import
composite
as
C
from
mindspore.ops
import
operations
as
P
from
mindspore
import
Tensor
from
mindspore
import
context
from
mindspore.common.initializer
import
TruncatedNormal
from
mindspore
import
nn
context
.
set_context
(
mode
=
context
.
PYNATIVE_MODE
,
device_target
=
"GPU"
)
# Generating training data sets
def
get_data
(
num
,
w
=
2.0
,
b
=
3.0
):
np_x
=
np
.
ones
([
num
,
1
])
np_y
=
np
.
ones
([
num
,
1
])
for
i
in
range
(
num
):
x
=
np
.
random
.
uniform
(
-
10.0
,
10.0
)
np_x
[
i
]
=
x
noise
=
np
.
random
.
normal
(
0
,
1
)
y
=
x
*
w
+
b
+
noise
np_y
[
i
]
=
y
return
Tensor
(
np_x
,
ms
.
float32
),
Tensor
(
np_y
,
ms
.
float32
)
# Define the form of loss function: 1/2 * (y - y')^2
class
MyLoss
(
nn
.
loss
.
loss
.
_Loss
):
def
__init__
(
self
,
reduction
=
'mean'
):
super
().
__init__
(
reduction
)
self
.
square
=
P
.
Square
()
def
construct
(
self
,
data
,
label
):
x
=
self
.
square
(
data
-
label
)
*
0.5
return
self
.
get_loss
(
x
)
# Gradient function
class
GradWrap
(
nn
.
Cell
):
""" GradWrap definition """
def
__init__
(
self
,
network
):
super
().
__init__
(
auto_prefix
=
False
)
self
.
network
=
network
self
.
weights
=
ms
.
ParameterTuple
(
filter
(
lambda
x
:
x
.
requires_grad
,
network
.
get_parameters
()))
def
construct
(
self
,
data
,
label
):
weights
=
self
.
weights
return
C
.
GradOperation
(
'get_by_list'
,
get_by_list
=
True
)
\
(
self
.
network
,
weights
)(
data
,
label
)
# Initializing model functions
net
=
nn
.
Dense
(
1
,
1
,
TruncatedNormal
(
0.02
),
TruncatedNormal
(
0.02
))
# Loss function
criterion
=
MyLoss
()
loss_opeartion
=
nn
.
WithLossCell
(
net
,
criterion
)
train_network
=
GradWrap
(
loss_opeartion
)
train_network
.
set_train
()
# Defining optimization
optim
=
nn
.
RMSProp
(
params
=
net
.
trainable_params
(),
learning_rate
=
0.02
)
# Executive Training
step_size
=
200
batch_size
=
16
for
i
in
range
(
step_size
):
data_x
,
data_y
=
get_data
(
batch_size
)
grads
=
train_network
(
data_x
,
data_y
)
optim
(
grads
)
# Print loss value per 10 step
if
i
%
10
==
0
:
output
=
net
(
data_x
)
loss_output
=
criterion
(
output
,
data_y
)
print
(
loss_output
.
asnumpy
())
# Print final weight parameters
print
(
"weight:"
,
net
.
weight
.
default_input
[
0
][
0
],
"bias:"
,
net
.
bias
.
default_input
[
0
])
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录