一个基于C++和python的张量计算库,目标是用C++实现常见的张量操作,便于将python的原型代码改写成C++,以及用C++实现卷积操作。目前已经实现的功能包括 多维张量加法减法乘法,relu,flatten,张量变形(NHWC => NCHW),张量线性计算(xw+b), 最大池化,后续还将实现二维卷积,并添加CNN训练部分的代码。
分为两部分,先用python实现一遍张量操作,然后用C++实现同样的操作,最后用python调用C++编译生成的静态库文件,以验证C++实现是否正确。测试用例 test_01.py 到 test_05.py 分别对这些功能进行测试
.
├── easynn_cpp.py --python与C++的桥接代码
├── easynn_golden.py --python的实现部分
├── easynn.py --python实现的调度
├── easynn_test
├── easynn_test.cpp --C++测试代码
├── libeasynn.so
├── Makefile
├── mnist_test.npz
├── msimple_params.npz
├── src --C++部分实现
│ ├── evaluation.cpp
│ ├── evaluation.h
│ ├── expression.cpp
│ ├── expression.h
│ ├── libeasynn.cpp
│ ├── libeasynn.h
│ ├── program.cpp
│ ├── program.h
│ ├── tensor.cpp
│ └── tensor.h
├── test_01.py --python测试代码
├── test_02.py
├── test_03.py
├── test_04.py
└── test_05.py
make
./easynn_test
或者
python3 test_0x.py
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。