使用 numpy 自己实现 cnn,学习神经网络的前向与反向传播,激活函数,以及numpy api
具体包括:
激活函数:
网络层:
我写这些代码只是为了学习算法,没有仔细考虑效率和准确率(python写的,效率不会高到哪里去)
我的网络框架借鉴了 pytorch 和 tensorflow,体会到了这些框架设计上的合理性。
比如说卷积时 kernel_size, stride,input_size 之间的约束关系 —— 我记得卷积核是要能够扫过input张量所有行和列(例如28x28,不能用 (5x5,stride=2)卷积,因为它只能扫过 27x27)。以前不懂,自己写完后发现这涉及到反向传播计算的问题,如果约束不满足,还得加 zeros_padding,非常多余。
很多事情说起来容易,做起来难。以前看了不少关于神经网络原理的博客,结果自己动手后发现有很多细节问题自己根本没注意过。
https://zhuanlan.zhihu.com/p/27739282
http://www.atyun.com/32288.html
https://blog.csdn.net/qq_36393962/article/details/97421557
https://blog.csdn.net/cassiePython/article/details/80089760
https://blog.csdn.net/googler_offer/article/details/81208413
https://blog.csdn.net/m_buddy/article/details/80426531
https://blog.csdn.net/qq_16137569/article/details/81477906
https://www.cnblogs.com/charlotte77/p/7783261.html
https://www.zhihu.com/question/22298352/answer/228543288
https://blog.csdn.net/gqixf/article/details/83579009
https://www.jianshu.com/p/8dfe02b61686
(2020-5-23 添加)
https://blog.csdn.net/csuyzt/article/details/82026408
https://blog.csdn.net/weixin_40519315/article/details/105115657
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。