fix ch2.3 (#195)

Co-authored-by: Dalong <39682259+eedalong@users.noreply.github.com>
This commit is contained in:
Cheng Lai
2022-03-24 08:17:10 +08:00
committed by GitHub
parent 4c1b2b61f8
commit cabe92531f
2 changed files with 6 additions and 6 deletions

View File

@@ -5,7 +5,7 @@
- **数据处理:**
首先用户需要数据处理API来支持将数据集从磁盘读入。进一步用户需要对读取数据进行数据预处理从而可以将数据输入后续的机器学习模型中。
- **模型定义**
- **模型结构**
完成数据的读取后用户需要模型定义API来定义机器学习模型。这些模型带有模型参数可以对给定的数据进行推理。
- **损失函数和优化算法:**
@@ -16,7 +16,7 @@
- **训练过程:**
给定一个数据集模型损失函数和优化器用户需要训练API来定一个循环Loop从而将数据集中的数据按照小批量mini-batch的方式读取出来反复计算梯度来更新模型。这个反复的过程称为训练。
- **测试和调**
- **测试和调**
训练过程中用户需要测试API来对当前模型的精度进行评估。当精度达到目标后训练结束。这一过程中用户往往需要调试API来完成对模型的性能和正确性进行验证。
![机器学习系统工作流](../img/ch02/workflow.svg)

View File

@@ -47,9 +47,9 @@
有了卷积、池化、全连接组件就可以构建一个非常简单的卷积神经网络了, :numref:`nn_network`展示了一个卷积神经网络的模型结构。
给定输入$3 \times 64 \times 64$的彩色图片使用16个$3 \times 3$大小的卷积核做卷积,得到大小为$16 \times 64 \times 64$
再进行池化操作降维,得到大小为$16 \times 32 \times 32$的特征图;
对特征图再卷积得到大小为$32 \times 32 \times 32$特征图,再进行池化操作得到$3 \times 16 \times 16$大小的特征图;
我们需要对特征图做全连接,此时需要把特征图平铺成一维向量这操作称为Flatten压平后输入特征大小为$3\times 16 \times 16 = 768$
之后做一次全连接对大小为768特征变换到大小为128的特征再依次做两次全连接分别得到6410。
对特征图再卷积得到大小为$32 \times 32 \times 32$特征图,再进行池化操作得到$32 \times 16 \times 16$大小的特征图;
我们需要对特征图做全连接,此时需要把特征图平铺成一维向量这操作称为Flatten压平后输入特征大小为$32\times 16 \times 16 = 8192$
之后做一次全连接对大小为8192特征变换到大小为128的特征再依次做两次全连接分别得到6410。
这里最后的输出结果是依据自己的实际问题而定,假设我们的输入是包含$0 \sim 9$的数字图片做分类那输出对应是10个概率值分别对应$0 \sim 9$的概率大小。
![卷积神经网络模型](../img/ch02/nn_network.svg)
@@ -69,7 +69,7 @@ input:(3,64,64)大小的图片
# 创建卷积模型的训练变量,使用随机数初始化变量值
conv1_filters = variable(random(size=(3, 3, 3, 16)))
conv2_filters = variable(random(size=(3, 3, 16, 32)))
fc1_weights = variable(random(size=(768, 128)))
fc1_weights = variable(random(size=(8192, 128)))
fc2_weights = variable(random(size=(128, 64)))
fc3_weights = variable(random(size=(64, 10)))
# 将所有需要训练的参数收集起来