图书介绍

C++模板元编程实战 一个深度学习框架的初步实现PDF|Epub|txt|kindle电子书版本网盘下载

C++模板元编程实战 一个深度学习框架的初步实现
  • 李伟著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115491701
  • 出版时间:2018
  • 标注页数:268页
  • 文件大小:41MB
  • 文件页数:298页
  • 主题词:C++语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C++模板元编程实战 一个深度学习框架的初步实现PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 元编程基础技术3

第1章 基本技巧3

1.1 元函数与type_traits3

1.1.1 元函数介绍3

1.1.2 类型元函数4

1.1.3 各式各样的元函数6

1.1.4 type-traits7

1.1.5 元函数与宏7

1.1.6 本书中元函数的命名方式8

1.2 模板型模板参数与容器模板8

1.2.1 模板作为元函数的输入9

1.2.2 模板作为元函数的输出9

1.2.3 容器模板10

1.3 顺序、分支与循环代码的编写12

1.3.1 顺序执行的代码12

1.3.2 分支执行的代码13

1.3.3 循环执行的代码19

1.3.4 小心:实例化爆炸与编译崩溃21

1.3.5 分支选择与短路逻辑23

1.4 奇特的递归模板式24

1.5 小结25

1.6 练习26

第2章 异类词典与policy模板28

2.1 具名参数简介28

2.2 异类词典30

2.2.1 模块的使用方式30

2.2.2 键的表示32

2.2.3 异类词典的实现34

2.2.4 VarTypeDict的性能简析41

2.2.5 用std::tuple作为缓存41

2.3 policy模板42

2.3.1 policy介绍42

2.3.2 定义policy与policy对象(模板)45

2.3.3 使用policy47

2.3.4 背景知识:支配与虚继承49

2.3.5 policy对象与policy支配结构50

2.3.6 policy选择元函数52

2.3.7 使用宏简化policy对象的声明57

2.4 小结58

2.5 练习58

第二部分 深度学习框架63

第3章 深度学习概述63

3.1 深度学习简介63

3.1.1 从机器学习到深度学习64

3.1.2 各式各样的人工神经网络65

3.1.3 深度学习系统的组织与训练68

3.2 本书所实现的框架:MetaNN70

3.2.1 从矩阵计算工具到深度学习框架70

3.2.2 MetaNN介绍71

3.2.3 本书将要讨论的内容72

3.2.4 本书不会涉及的主题75

3.3 小结75

第4章 类型体系与基本数据类型76

4.1 类型体系77

4.1.1 类型体系介绍77

4.1.2 迭代器分类体系78

4.1.3 将标签作为模板参数80

4.1.4 MetaNN的类型体系81

4.1.5 与类型体系相关的元函数82

4.2 设计理念84

4.2.1 支持不同的计算设备与计算单元84

4.2.2 存储空间的分配与维护85

4.2.3 浅拷贝与写操作检测88

4.2.4 底层接口扩展89

4.2.5 类型转换与求值91

4.2.6 数据接口规范92

4.3 标量92

4.3.1 类模板的声明93

4.3.2 基于CPU的特化版本94

4.3.3 标量的主体类型95

4.4 矩阵96

4.4.1 Matrix类模板96

4.4.2 特殊矩阵:平凡矩阵、全零矩阵与独热向量101

4.4.3 引入新的矩阵类104

4.5 列表105

4.5.1 Batch模板105

4.5.2 Array模板108

4.5.3 重复与Duplicate模板113

4.6 小结116

4.7 练习116

第5章 运算与表达式模板119

5.1 表达式模板简介119

5.2 MetaNN运算模板的设计思想122

5.2.1 Add模板的问题122

5.2.2 运算模板的行为分析122

5.3 运算分类124

5.4 辅助模板125

5.4.1 辅助类模板OperElementType_/OperDeviceType_125

5.4.2 辅助类模板OperXXX126

5.4.3 辅助类模板OperCateCal126

5.4.4 辅助类模板 OperOrganizer128

5.4.5 辅助类模板OperSeq130

5.5 运算模板的框架131

5.5.1 运算模板的类别标签131

5.5.2 UnaryOp的定义132

5.6 运算实现示例133

5.6.1 Sigmoid运算133

5.6.2 Ad d运算136

5.6.3 转置运算139

5.6.4 折叠运算141

5.7 MetaNN已支持的运算列表141

5.7.1 一元运算141

5.7.2 二元运算142

5.7.3 三元运算144

5.8 运算的折衷与局限性144

5.8.1 运算的折衷144

5.8.2 运算的局限性145

5.9 小结146

5.10 练习146

第6章 基本层148

6.1 层的设计理念148

6.1.1 层的介绍148

6.1.2 层对象的构造150

6.1.3 参数矩阵的初始化与加载151

6.1.4 正向传播152

6.1.5 存储中间结果154

6.1.6 反向传播154

6.1.7 参数矩阵的更新155

6.1.8 参数矩阵的获取155

6.1.9 层的中性检测156

6.2 层的辅助逻辑156

6.2.1 初始化模块156

6.2.2 DynamicData类模板161

6.2.3 层的常用policy对象166

6.2.4 InjectPolicy元函数168

6.2.5 通用I/O结构168

6.2.6 通用操作函数169

6.3 层的具体实现170

6.3.1 AddLayer170

6.3.2 ElementMulLayer172

6.3.3 BiasLayer176

6.4 MetaNN已实现的基本层181

6.5 小结183

6.6 练习184

第7章 复合层与循环层185

7.1 复合层的接口与设计理念186

7.1.1 基本结构186

7.1.2 结构描述语法187

7.1.3 policy的继承关系188

7.1.4 policy的修正189

7.1.5 复合层的构造函数190

7.1.6 一个完整的复合层构造示例190

7.2 policy继承与修正逻辑的实现191

7.2.1 policy继承逻辑的实现191

7.2.2 policy修正逻辑的实现194

7.3 ComposeTopology的实现195

7.3.1 功能介绍195

7.3.2 拓扑排序算法介绍195

7.3.3 ComposeTopology包含的主要步骤196

7.3.4 结构描述子句与其划分196

7.3.5 结构合法性检查198

7.3.6 拓扑排序的实现200

7.3.7 子层实例化元函数203

7.4 ComposeKernel的实现207

7.4.1 类模板的声明208

7.4.2 子层对象管理208

7.4.3 参数获取、梯度收集与中性检测211

7.4.4 参数初始化与加载212

7.4.5 正向传播214

7.4.6 反向传播221

7.5 复合层实现示例221

7.6 循环层222

7.6.1 GruStep222

7.6.2 构建RecurrentLayer类模板224

7.6.3 RecurrentLayer的使用230

7.7 小结230

7.8 练习230

第8章 求值与优化233

8.1 MetaNN的求值模型234

8.1.1 运算的层次结构234

8.1.2 求值子系统的模块划分235

8.2 基本求值逻辑242

8.2.1 主体类型的求值接口242

8.2.2 非主体基本数据类型的求值243

8.2.3 运算模板的求值245

8.2.4 DyanmicData与求值248

8.3 求值过程的优化249

8.3.1 避免重复计算249

8.3.2 同类计算合并250

8.3.3 多运算协同优化251

8.4 小结258

8.5 练习259

后记——方家休见笑,吾道本艰难260

热门推荐