本周学完了deeplearning.ai专项课程的第三门课Structuring Deep Learning Projects的第一周课程,在本周的大佬访谈栏目Heroes of Deep Learning中,吴恩达请到了Stanford教CS231n课程的老师Andrej Karpathy来做分享。
我之前也完整的学习过CS231n这门课,对课程印象最深刻的就是李飞飞除了第一节课出现过一次之后就消失了,剩下的所有课程都是这位Andrej小哥上的;另外还有一件事有深刻的印象就是Andrej小哥在课堂上演示他自己使用JavaScript开发的深度网络学习框架,在这次访谈中他也提到了这个框架,叫做ConvNetsJS。
在本次访谈中,吴恩达让Andrej给现在正在学习深度学习的人一些建议。Andrej给出的建议是,从底层代码开始练习,不要一上来就使用如TensorFlow等的框架,否则永远没有办法有效率地debug我们的神经网络程序。Andrej还以其自身举例,说他在学习深度网络时,利用JavaScript开发了一个完整的卷积神经网络框架ConvNetsJS,在开发此框架过程中极大地加深了他对神经网络的理解,一直到现在都受益无穷。
在学习吴恩达老师的深度学习专项课程途中,除了用Python完成课程的常规作业之外,我还跟随者课程的脚步,使用Scala将课程中讲过的所有内容复现一遍,并且逐渐形成了一个成形的框架。在开发此框架的过程中,我也能够感受到接口设计,API的易用性等诸多写Python脚本体会不到的问题,感觉受益良多。现在该Scala框架尚不支持CNN和RNN模型,还有很多待完善的地方,不过随着我学习吴恩达专项课程的进度推进,相应的功能也会随之完善。
我将该Scala框架命名为estuary,意为河流,象征着深度网络中的数据从输入层进入,像水流一样一直流向输出层。希望该框架的开发进度也可以如水流一般缓缓前进不中断。项目的GitHub地址为
https://github.com/pan5431333/estuary。