目录
●前言xvii
第1阶段自动微分1
步骤1作为“箱子”的变量3
1.1什么是变量3
1.2实现Variable类4
1.3(补充)NumPy的多维数组6
步骤2创建变量的函数8
2.1什么是函数8
2.2Function类的实现9
2.3使用Function类10
步骤3函数的连续调用13
3.1Exp函数的实现13
3.2函数的连续调用14
步骤4数值微分16
4.1什么是导数16
4.2数值微分的实现17
4.3复合函数的导数20
4.4数值微分存在的问题21
步骤5反向传播的理论知识22
5.1链式法则22
5.2反向传播的推导23
5.3用计算图表示25
步骤6手动进行反向传播27
6.1Variable类的功能扩展27
6.2Function类的功能扩展28
6.3Square类和Exp类的功能扩展28
6.4反向传播的实现29
步骤7反向传播的自动化32
7.1为反向传播的自动化创造条件33
7.2尝试反向传播36
7.3增加backward方法38
步骤8从递归到循环40
8.1现在的Variable类40
8.2使用循环实现41
8.3代码验证42
步骤9让函数更易用43
9.1作为Python函数使用43
9.2简化backward方法45
9.3只支持ndarray46
步骤10测试50
……
内容介绍
深度学习框架中蕴藏着惊人的技术和有趣的机制,本书旨在揭开这些技术和机制的神秘面纱,帮助读者正确理解技术,体会它们的有趣之处。为此,本书会带领读者从零开始创建一个深度学习框架——DeZero。DeZero是本书原创的框架,它用最少的代码实现了现代深度学习框架的功能。本书分60个步骤来完成这个框架,在此过程中,读者会加深对PyTorch、TensorFlow和Chainer等现代深度学习框架的理解,看清深度学习框架的本质。
本书沿袭《深度学习入门:基于Python的理论与实现》的风格,语言通俗,代码简洁,讲解详细。在自制框架的过程中,读者还能进一步巩固Python编程和软件开发相关的知识。
本书适合对深度学习框架感兴趣的读者阅读。