首页
学习
活动
专区
圈层
工具
发布

我写了个C++库Deepity,预测编码网络跑MNIST准度97.73%,60秒追上反向传播

上个月我都在捣鼓一个本地C++机器学习库,叫Deepity,主要想试试不一样的信用分配算法, specifically是预测编码网络(PCNs)。

PCNs这东西挺有意思的,生物 plausibility 好,也适合持续学习,但最原始的写法实在慢得让人头疼。

后来我照着一篇新研究(用直接Kolen-Pollack反馈对齐加速PCN)做了实现,再加了算法层面的缓存,把推理settling阶段里那些重复的forward projection给跳过了。结果在我自己CPU上训MNIST(50轮)居然把和反向传播的差距抹平了。

具体数字:

PyTorch反向传播(前馈):约70秒,测试准度98.27%

Deepity DKPPCN:59.5秒,测试准度97.73%

下一步我打算把这些kernel搬到CUDA上,把架构规模拉起来,再去测持续学习场景——那种标准反向传播不太行的地方。

如果你对本地学习、替代信用分配或者ML的高性能计算感兴趣,真的很想听听你的想法!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OI83lGd0cYkKJnQOjsFo7L6Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券