Co-authored-by: Luo Mai <luo.mai.cs@gmail.com>
This commit is contained in:
Jiarong Han
2023-06-08 09:56:10 +08:00
committed by GitHub
parent 004017beaa
commit 57f6301ff9
3 changed files with 5 additions and 5 deletions

View File

@@ -6,7 +6,7 @@
早期机器学习框架主要针对全连接和卷积神经网络设计这些神经网络的拓扑结构简单神经网络层之间通过串行连接。因此它们的拓扑结构可以用简易的配置文件表达例如Caffe基于Protocol Buffer格式的模型定义
现代机器学习模型的拓扑结构日益复杂,显著的例子包括混合专家模型、生成对抗网络、注意力模型等。复杂的模型结构(例如带有分支的循环结构等)需要机器学习框架能够对模型算子的执行依赖关系、梯度计算以及训练参数进行快速高效的分析,便于优化模型结构、制定调度执行策略以及实现自动化梯度计算,从而提高机器学习框架训练复杂模型的效率。因此,机器学习系统设计者需要一个通用的数据结构来理解、表达和执行机器学习模型。为了应对这个需求,如:numref:`dag`所示基于计算图的机器学习框架应运而生,框架延续前端语言与后端语言分离的设计。从高层次来看,计算图实现了以下关键功能:
现代机器学习模型的拓扑结构日益复杂,显著的例子包括混合专家模型、生成对抗网络、注意力模型等。复杂的模型结构(例如带有分支的循环结构等)需要机器学习框架能够对模型算子的执行依赖关系、梯度计算以及训练参数进行快速高效的分析,便于优化模型结构、制定调度执行策略以及实现自动化梯度计算,从而提高机器学习框架训练复杂模型的效率。因此,机器学习系统设计者需要一个通用的数据结构来理解、表达和执行机器学习模型。为了应对这个需求,如 :numref:`dag`所示基于计算图的机器学习框架应运而生,框架延续前端语言与后端语言分离的设计。从高层次来看,计算图实现了以下关键功能:
- **统一的计算过程表达。**
在编写机器学习模型程序的过程中用户希望使用高层次编程语言如Python、Julia和C++。然而硬件加速器等设备往往只提供了C和C++编程接口因此机器学习系统的实现通常需要基于C和C++。用不同的高层次语言编写的程序因此需要被表达为一个统一的数据结构从而被底层共享的C和C++系统模块执行。这个数据结构(即计算图)可以表述用户的输入数据、模型中的计算逻辑(通常称为算子)以及算子之间的执行顺序。

View File

@@ -7,13 +7,13 @@
:label:`simpledag`
### 张量和算子
在数学中定义张量是基于标量与向量的推广。在机器学习领域内将多维数据称为张量,使用秩来表示张量的轴数或维度。如:numref:`tensor`所示标量为零秩张量包含单个数值没有轴向量为一秩张量拥有一个轴拥有RGB三个通道的彩色图像即为三秩张量包含三个轴。
在数学中定义张量是基于标量与向量的推广。在机器学习领域内将多维数据称为张量,使用秩来表示张量的轴数或维度。如 :numref:`tensor`所示标量为零秩张量包含单个数值没有轴向量为一秩张量拥有一个轴拥有RGB三个通道的彩色图像即为三秩张量包含三个轴。
![张量](../img/ch03/tensor.png)
:width:`800px`
:label:`tensor`
在机器学习框架中张量不仅存储数据,还需要存储张量的数据类型、数据形状、秩以及梯度传递状态等多个属性,如:numref:`tensor_attr`所示,列举了主要的属性和功能。
在机器学习框架中张量不仅存储数据,还需要存储张量的数据类型、数据形状、秩以及梯度传递状态等多个属性,如 :numref:`tensor_attr`所示,列举了主要的属性和功能。
:张量属性

View File

@@ -93,7 +93,7 @@ with tf.Session() as sess:
### 动态和静态生成的比较
静态生成和动态生成的过程各有利弊。为了方便读者对比,将静态图和动态图特性总结见:numref:`cmp_dynamic_static`
静态生成和动态生成的过程各有利弊。为了方便读者对比,将静态图和动态图特性总结见 :numref:`cmp_dynamic_static`
:静态图和动态图对比
@@ -126,7 +126,7 @@ def model(X1, X2):
动态图便于调试适用于模型构建实验阶段静态图执行高效节省模型训练时间那么有没有办法可以让机器学习框架结合两种模式的优势呢事实上目前TensorFlow、MindSpore、PyTorch、PaddlePaddle等主流机器学习框架为了兼顾动态图易用性和静态图执行性能高效两方面优势均具备动态图转静态图的功能支持使用动态图编写代码框架自动转换为静态图网络结构执行计算。
将各框架中支持源码转换和追踪转换技术的接口梳理如:numref:`dynamic_static_switch`所示。
将各框架中支持源码转换和追踪转换技术的接口梳理如 :numref:`dynamic_static_switch`所示。
:主流框架动态图转换静态图支持