0
点赞
收藏
分享

微信扫一扫

从零实现深度学习框架【实现自己的PyTorch】


引言

本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。

要深入理解深度学习,从零开始创建的经验非常重要,从自己可以理解的角度出发,尽量不适用外部完备的框架前提下,实现我们想要的模型。本系列文章的宗旨就是通过这样的过程,让大家切实掌握深度学习底层实现,而不是仅做一个调包侠。
本系列文章首发于微信公众号:JavaNLP

从零开始实现深度学习框架,可能会花费不少时间,我们需要编写不少的代码。但是一旦完成了这一项工作,看着通过我们自己的框架实现的RNN、seq2seq、BERT等技术时,一种自豪感油然而生。同时在这个过程中,我们会对其他的技术细节有深入的理解。对于我们使用、调试现有的自动求导库,如PyTorch都非常有帮助。

完整代码地址

点击 👉 ​​metagrad​​

线路图

下面是从零实现深度学习框架的线路图(可点击跳转)。

​​

从零实现深度学习框架【实现自己的PyTorch】_深度学习

​​

​​点击进入线路图​​

目录

  1. ​​自动求导神器计算图​​
  2. ​​常见运算的计算图​​
  3. ​​计算图运算补充​​
  4. ​​实现自己的Tensor对象​​
  5. ​​实现Tensor的反向传播​​
  6. ​​理解广播和常见的乘法​​
  7. ​​优化反向传播相关代码​​
  8. ​​实现常见运算的计算图(上)​​
  9. ​​实现常见运算的计算图(下)​​
  10. ​​线性回归简介​​
  11. ​​动手实现线性回归​​
  12. ​​逻辑回归简介​​
  13. ​​动手实现逻辑回归​​
  14. ​​Softmax回归简介​​
  15. ​​动手实现Softmax回归​​
  16. ​​实现Debug功能与no_grad​​
  17. ​​逻辑回归中的数值稳定​​
  18. ​​Softmax回归中的数值稳定​​
  19. ​​深入浅出交叉熵​​
  20. ​​优化索引操作&交叉熵损失​​
  21. ​​神经元与常见激活函数​​
  22. ​​神经网络入门​​
  23. ​​手写前馈网络实现电影评论分类​​
  24. ​​过拟合与欠拟合​​
  25. ​​处理数据的加载​​
  26. ​​理解正则化(一)​​
  27. ​​理解正则化(二)​​
  28. ​​几种常用的权重初始化方法​​
  29. ​​N-Gram语言模型(一)​​
  30. ​​N-Gram语言模型(二)​​
  31. ​​利用GPU加速​​
  32. ​​从共现矩阵到点互信息​​
  33. ​​深入浅出Word2vec(上)​​
  34. ​​深入浅出Word2vec(下)​​
  35. ​​前馈网络语言模型​​
  36. ​​重构计算图的实现​​
  37. ​​RNN从理论到实战【理论】​​
  38. ​​RNN从理论到实战【实战】​​
  39. ​​LSTM从理论到实战【理论】​​


举报

相关推荐

0 条评论