𝔖 Scriptorium
✦   LIBER   ✦

📁

C++模板元编程实战: 一个深度学习框架的初步实现

✍ Scribed by 李伟


Publisher
人民邮电出版社
Year
2018
Tongue
Chinese
Leaves
297
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


《C++模板元编程实战:一个深度学习框架的初步实现》以一个深度学习框架的初步实现为例,讨论如何在一个相对较大的项目中深入应用元编程,为系统性能优化提供更多的可能。

《C++模板元编程实战:一个深度学习框架的初步实现》分为8章,前两章讨论了一些元编程与编译期计算的基本技术,后面6章则讨论了元编程在深度学习框架中的实际应用,涉及富类型与标签体系、表达式模板、复杂元函数的编写等多个主题,详尽地展示了如何将面向对象与元编程相结合以构造复杂系统。

《C++模板元编程实战:一个深度学习框架的初步实现》适合具有一定C++基础的读者阅读。对主流深度学习框架的内核有一定了解的读者,也可以参考本书,对比使用元编程与编译期计算所实现的深度学习框架与主流的(主要基于面向对象所构造的)深度学习框架之间的差异。

✦ Table of Contents


封面
书名
版权
前言
目录
第一部分 元编程基础技术
第1章 基本技巧
1.1 元函数与type_traits
1.1.1 元函数介绍
1.1.2 类型元函数
1.1.3 各式各样的元函数
1.1.4 type-traits
1.1.5 元函数与宏
1.1.6 本书中元函数的命名方式
1.2 模板型模板参数与容器模板
1.2.1 模板作为元函数的输入
1.2.2 模板作为元函数的输出
1.2.3 容器模板
1.3 顺序、分支与循环代码的编写
1.3.1 顺序执行的代码
1.3.2 分支执行的代码
1.3.3 循环执行的代码
1.3.4 小心:实例化爆炸与编译崩溃
1.3.5 分支选择与短路逻辑
1.4 奇特的递归模板式
1.5 小结
1.6 练习
第2章 异类词典与policy模板
2.1 具名参数简介
2.2 异类词典
2.2.1 模块的使用方式
2.2.2 键的表示
2.2.3 异类词典的实现
2.2.4 VarTypeDict的性能简析
2.2.5 用std::tuple作为缓存
2.3 policy模板
2.3.1 policy介绍
2.3.2 定义policy与policy对象(模板)
2.3.3 使用policy
2.3.4 背景知识:支配与虚继承
2.3.5 policy对象与policy支配结构
2.3.6 policy选择元函数
2.3.7 使用宏简化policy对象的声明
2.4 小结
2.5 练习
第二部分 深度学习框架
第3章 深度学习概述
3.1 深度学习简介
3.1.1 从机器学习到深度学习
3.1.2 各式各样的人工神经网络
3.1.3 深度学习系统的组织与训练
3.2 本书所实现的框架:MetaNN
3.2.1 从矩阵计算工具到深度学习框架
3.2.2 MetaNN介绍
3.2.3 本书将要讨论的内容
3.2.4 本书不会涉及的主题
3.3 小结
第4章 类型体系与基本数据类型
4.1 类型体系
4.1.1 类型体系介绍
4.1.2 迭代器分类体系
4.1.3 将标签作为模板参数
4.1.4 MetaNN的类型体系
4.1.5 与类型体系相关的元函数
4.2 设计理念
4.2.1 支持不同的计算设备与计算单元
4.2.2 存储空间的分配与维护
4.2.3 浅拷贝与写操作检测
4.2.4 底层接口扩展
4.2.5 类型转换与求值
4.2.6 数据接口规范
4.3 标量
4.3.1 类模板的声明
4.3.2 基于CPU的特化版本
4.3.3 标量的主体类型
4.4 矩阵
4.4.1 Matrix类模板
4.4.2 特殊矩阵:平凡矩阵、全零矩阵与独热向量
4.4.3 引入新的矩阵类
4.5 列表
4.5.1 Batch模板
4.5.2 Array模板
4.5.3 重复与Duplicate模板
4.6 小结
4.7 练习
第5章 运算与表达式模板
5.1 表达式模板简介
5.2 MetaNN运算模板的设计思想
5.2.1 Add模板的问题
5.2.2 运算模板的行为分析
5.3 运算分类
5.4 辅助模板
5.4.1 辅助类模板OperElementType_/OperDeviceType_
5.4.2 辅助类模板OperXXX
5.4.3 辅助类模板OperCateCal
5.4.4 辅助类模板 OperOrganizer
5.4.5 辅助类模板OperSeq
5.5 运算模板的框架
5.5.1 运算模板的类别标签
5.5.2 UnaryOp的定义
5.6 运算实现示例
5.6.1 Sigmoid运算
5.6.2 Ad d运算
5.6.3 转置运算
5.6.4 折叠运算
5.7 MetaNN已支持的运算列表
5.7.1 一元运算
5.7.2 二元运算
5.7.3 三元运算
5.8 运算的折衷与局限性
5.8.1 运算的折衷
5.8.2 运算的局限性
5.9 小结
5.10 练习
第6章 基本层
6.1 层的设计理念
6.1.1 层的介绍
6.1.2 层对象的构造
6.1.3 参数矩阵的初始化与加载
6.1.4 正向传播
6.1.5 存储中间结果
6.1.6 反向传播
6.1.7 参数矩阵的更新
6.1.8 参数矩阵的获取
6.1.9 层的中性检测
6.2 层的辅助逻辑
6.2.1 初始化模块
6.2.2 DynamicData类模板
6.2.3 层的常用policy对象
6.2.4 InjectPolicy元函数
6.2.5 通用I/O结构
6.2.6 通用操作函数
6.3 层的具体实现
6.3.1 AddLayer
6.3.2 ElementMulLayer
6.3.3 BiasLayer
6.4 MetaNN已实现的基本层
6.5 小结
6.6 练习
第7章 复合层与循环层
7.1 复合层的接口与设计理念
7.1.1 基本结构
7.1.2 结构描述语法
7.1.3 policy的继承关系
7.1.4 policy的修正
7.1.5 复合层的构造函数
7.1.6 一个完整的复合层构造示例
7.2 policy继承与修正逻辑的实现
7.2.1 policy继承逻辑的实现
7.2.2 policy修正逻辑的实现
7.3 ComposeTopology的实现
7.3.1 功能介绍
7.3.2 拓扑排序算法介绍
7.3.3 ComposeTopology包含的主要步骤
7.3.4 结构描述子句与其划分
7.3.5 结构合法性检查
7.3.6 拓扑排序的实现
7.3.7 子层实例化元函数
7.4 ComposeKernel的实现
7.4.1 类模板的声明
7.4.2 子层对象管理
7.4.3 参数获取、梯度收集与中性检测
7.4.4 参数初始化与加载
7.4.5 正向传播
7.4.6 反向传播
7.5 复合层实现示例
7.6 循环层
7.6.1 GruStep
7.6.2 构建RecurrentLayer类模板
7.6.3 RecurrentLayer的使用
7.7 小结
7.8 练习
第8章 求值与优化
8.1 MetaNN的求值模型
8.1.1 运算的层次结构
8.1.2 求值子系统的模块划分
8.2 基本求值逻辑
8.2.1 主体类型的求值接口
8.2.2 非主体基本数据类型的求值
8.2.3 运算模板的求值
8.2.4 DyanmicData与求值
8.3 求值过程的优化
8.3.1 避免重复计算
8.3.2 同类计算合并
8.3.3 多运算协同优化
8.4 小结
8.5 练习
后记——方家休见笑,吾道本艰难


📜 SIMILAR VOLUMES


C++模板元编程实战: 一个深度学习框架的初步实现
✍ 李伟 📂 Library 📅 2018 🏛 人民邮电出版社 🌐 Chinese

<p>《C++模板元编程实战:一个深度学习框架的初步实现》以一个深度学习框架的初步实现为例,讨论如何在一个相对较大的项目中深入应用元编程,为系统性能优化提供更多的可能。</p> <p>《C++模板元编程实战:一个深度学习框架的初步实现》分为8章,前两章讨论了一些元编程与编译期计算的基本技术,后面6章则讨论了元编程在深度学习框架中的实际应用,涉及富类型与标签体系、表达式模板、复杂元函数的编写等多个主题,详尽地展示了如何将面向对象与元编程相结合以构造复杂系统。</p> <p>《C++模板元编程实战:一个深度学习框架的初步实现》适合具有一定C++基础的读者阅读。对主流深度学习框架的内核有一定了解

Tensorflow:实战Google深度学习框架
✍ 郑泽宇; 顾思宇 📂 Library 📅 2017 🏛 电子工业出版社 🌐 Chinese

<p>TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌、优步(Uber)、京东、小米等科技公司广泛应用。《Tensorflow实战》为使用TensorFlow深度学习框架的入门参考书,旨在帮助读者以最快、最有效的方式上手TensorFlow和深度学习。书中省略了深度学习繁琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow样例程序介绍如何使用深度学习解决这些问题。《Tensorflow实战》包含了深度学习的入门知识和大量实践经验,是走进这个最新、最火的人工智能领域的首选参考书。</p>

TensorFlow:实战Google深度学习框架(第2版)
✍ 顾思宇; 梁博文; 郑泽宇 📂 Library 📅 2018 🏛 电子工业出版社 🌐 Chinese

<p>TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用。《TensorFlow:实战Google深度学习框架(第2版)》为TensorFlow入门参考书,旨在帮助读者以快速、有效的方式上手TensorFlow和深度学习。书中省略了烦琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow示例介绍如何使用深度学习解决实际问题。书中包含深度学习的入门知识和大量实践经验,是走进这个前沿、热门的人工智能领域的优选参考书。</p> <p>第2版将书中所有示例代码从TensorFlow 0.9.0升级到了TensorFlow 1.4.0。在升级API的同时,第2

深度学习实战
✍ 杨云; 杜飞 📂 Library 📅 2017 🏛 清华大学出版社 🌐 Chinese

<p>深度学习为人工智能带来了巨大突破,也成为机器学习领域一颗闪耀的新星。虽然相关学习资料丰富,但大部分内容较为庞杂且难以理解,并对初学者的相关理论知识与实践能力有较高的要求,这使得大部分想进入这一领域的初学者望而却步。《深度学习实战》去繁化简地对深度学习的理论知识进行了梳理,并对算法实现做出了浅显易懂的讲解,适合初学者进行学习。结合《深度学习实战》的内容,读者可以快速对深度学习进行实践。通过启发式的自学模式,可以使读者由浅入深地学习并掌握常用的深度学习模型,为进一步使用开源的深度学习平台与工具提供理论与实践基础。</p> <p>《深度学习实战》可作为高等院校计算机专业的本科生或研究生教材,

深度学习框架PyTorch快速开发与实战
✍ 邢梦来; 王硕; 孙洋洋 📂 Library 📅 2018 🏛 电子工业出版社 🌐 Chinese

<p>深度学习已经成为人工智能炙手可热的技术,PyTorch是一个较新的、容易上手的深度学习开源框架,目前已得到广泛应用。《深度学习框架PyTorch快速开发与实战》从PyTorch框架结构出发,通过案例主要介绍了线性回归、逻辑回归、前馈神经网络、卷积神经网络、循环神经网络、自编码模型、以及生成对抗网络。《深度学习框架PyTorch快速开发与实战》作为深度学习的入门教材,省略了大量的数学模型推导,适合深度学习初学者,人工智能领域的从业者,以及深度学习感兴趣的人阅读。</p>

C++模板元编程
✍ David Abrahams; Aleksey Gurtovoy 📂 Library 📅 2010 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 C++模板元编程,ISBN:9787111267423,作者:(美)大卫 等著,荣耀 译