fix ch03-1 (#214)

This commit is contained in:
Jiarong Han
2022-03-25 16:48:27 +08:00
committed by GitHub
parent 2f561bd5b3
commit b3808c48f9

View File

@@ -5,7 +5,7 @@
:label:`dag`
早期的机器学习框架主要为了支持基于卷积神经网络的图像分类问题。这些神经网络的拓扑结构简单神经网络层往往通过串行构建他们的拓扑结构可以用简单的配置文件来表达例如Caffe中基于Protocol
Buffer格式的模型定义。随着机器学习的进一步发展模型的拓扑日益复杂包括混合专家生成对抗网络多注意力模型。这些模型复杂拓扑(例如说,分结构带有条件的if-else结构)。而复杂的拓扑会影响模型算子的执行自动化计算梯度(一般称为自动微分)训练参数的自动化判断。为此,我们需要一个更加通用的技术来执行任意机器学习模型。因此,计算图应运而生。综合来看,计算图对于一个机器学习框架提供了以下几个关键作用:
Buffer格式的模型定义。随着机器学习的进一步发展模型的拓扑日益复杂包括混合专家生成对抗网络多注意力模型。这些模型复杂拓扑结构(例如说,分结构带有条件的if-else循环)会影响模型算子的执行自动化梯度计算(一般称为自动微分)以及训练参数的自动化判断。为此,我们需要一个更加通用的技术来执行任意机器学习模型。因此,计算图应运而生。综合来看,计算图对于一个机器学习框架提供了以下几个关键作用:
- **对于输入数据,算子和算子执行顺序的统一表达。**
机器学习框架用户可以用多种高层次编程语言PythonJulia和C++来编写训练程序。这些高层次程序需要统一的表达成框架底层C和C++算子的执行。因此,计算图的第一个核心作用是可以作为一个统一的数据结构来表达用户用不同语言编写的训练程序。这个数据结构可以准确表述用户的输入数据,模型所带有的多个算子,以及算子之间的执行顺序。