学习一门技术最好的方式是做一个玩具demo。最近为了深入理解自动求导框架的实现思路,我自己开发了一个自动求导框架,并且使其支持了控制流。在该框架的基础上我又开发了一个简单的RNN(循环神经网络)来学习二进制加法概念,验证框架实现的正确性。RNN实现部分我参考了这位大神的博客:Anyone Can Learn To Code an LSTM-RNN in Python (Part 1: RNN)。框架的源代码在以下地址:
目前很多神经网络的结构越来越复杂,传统的手动求导硬编码模型的反向传播很繁琐且不直观。tensorflow等深度学习框架的出现大大缓解了这一问题,科研工作者只需要用框架把自己的神经网络结构设计好,框架会自动对该网络进行反向传播。本系列文章是根据我本人的理解来实现tensorflow这种深度学习框架中的自动求导这一功能。由于水平有限,文章中会有一些错误和不足,希望读者能够指出。
系列包括以下几部分
网友评论