4.自动求导框架架构

本节是自动求导框架技术的第四节,本系列其余文章包括


自动求导框架综述

1. 矩阵求导

2. 链式法则与计算图

3. 控制流与其实现思路

5. 使用自动求导框架实现RNN


自动求导框架主要包括以下几个类:

Tensor:封装了张量以及张量的基本运算,也就是一个任意维度的数组。

Graph:图类,是虚拟图和计算图的基类,包括了图的基本算法:构件图的邻接表,图的转置,根据给定的节点对图进行剪枝,图的拓扑排序等。

Node:节点类,是虚拟节点,计算节点等节点的基类,是Graph的组成部分。

VirtualGraph:虚拟图类,主要包含一个前向传播构建计算图的方法 build_compute_graph。

VirtualNode:虚拟节点类,组成虚拟图,内部包含了一个计算节点工厂,可以根据虚拟节点的类型生成计算节点。每个虚拟节点生成的计算节点引用都会被缓存在虚拟节点中,使得用户可以通过虚拟节点访问到生成的计算节点;虚拟节点还可以控制生成的计算节点是否共享参数,默认是不共享。共享参数这一功能对于rnn的构造是很有必要的。

LoopNode 和 BranchNode,虚拟图中的控制节点,用于实现控制流。其中 LoopNode 内包含了一个子虚拟图。

ComputeGraph:计算图,由虚拟图构造出来,包括了前向传播和反向求导等功能。之所以和虚拟图VirtualGraph 一样包含了前向传播的功能,是因为大部分网络对于不同的数据实际上不会拥有动态的网络结构,计算图由虚拟图构造出来之后结构就不会变化了。所以计算图提供前向传播的功能是为了优化的考虑。

OperatorNode:计算节点的基类,主要包括 op () 前向计算函数和 grad_op () 求解梯度的函数,其子类包括参数节点 Parameter 类,数据输入节点 Input 类,各种运算比如基于张量的加法,减法,乘法,偏置,sigmoid 函数,二阶范数,一阶范数。


自动求导框架类图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本节是自动求导框架技术的第三节,本系列其余文章包括 自动求导框架综述 1. 矩阵求导 2. 链式法则与计算图 4....
    origin42阅读 5,414评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,478评论 19 139
  • 有一种人,他们和颜悦色,温文尔雅,不紧不慢;他们有一颗善良的心,总是真诚而温柔地对待他人。 言谈举止让人感到舒服,...
    北京无极堂阅读 1,612评论 0 0
  • 队长把我们十二个人进行了人员安排,每两个队员组成一个小组,小组里的成员一个负责拍照,一个负责向公园里的人们就行调查...
    水浅则无鱼阅读 1,183评论 0 0
  • 1组金句子接龙(20171128) —轮值值日生:陆雪娇 1.刘明丽:任何事都是从一个决心、一粒种子开始。以欢喜心...
    Leena琴阅读 1,794评论 0 0