spinalAdderNetMNIST:SpinalHDL AdderNet MNIST

时间:2024-03-06 12:12:55
【文件属性】:

文件名称:spinalAdderNetMNIST:SpinalHDL AdderNet MNIST

文件大小:357KB

文件格式:ZIP

更新时间:2024-03-06 12:12:55

Scala

SpinalHDL AdderNet MNIST 这是一个瞎写的理论上可以部署在FPGA上的用SpinalHDL写的针对MNIST的AdderNet,参考了华为的那篇论文,python代码调用了华为开源的那个代码。 训练也是瞎训练的,权重可能不太好,所以准确率很低,浮点精度97%多,量化后就更差了(9659/9998)。 FPGA代码中LayerCore这个核心模块和它下属的模块用比较基础的写法写的,思路就是传统的写rtl的思路,可以理解为相当于是verilog翻译来的。它的外层Layer ANN等模块用了一些略微高级点的技巧。 就设计思路来说还有很多可以优化的地方,例如,前两层量化位宽压根不需要这么宽,可以节约大量的资源。再就是不同层计算的所用时间不一样,所以也存在大量资源浪费。 生成代码ANN.scala是ANN.scala中的annTop , testANN.scala是testA


【文件预览】:
spinalAdderNetMNIST-master
----project()
--------project()
--------build.properties(18B)
--------metals.sbt(161B)
--------plugins.sbt(73B)
----LayerCore.v_toplevel_wrom_1__rom.bin(2KB)
----.metals()
--------metals.lock.db(142B)
--------metals.h2.db(5.12MB)
--------readonly()
----param_ann.bin(42KB)
----mnist_cnn.pt(266KB)
----src()
--------main()
----Layer.v_toplevel_wrom_1__rom.bin(2KB)
----LICENSE(1KB)
----build.sbt(312B)
----README.md(2KB)
----.gitignore(386B)

网友评论