该框架基于C++20标准实现,除了demo对图像的读写和显示功能会用到OpenCV库之外没有其他外部依赖。
在根目录运行:
mkdir build
&& cd build
&& cmake ..完成项目构建,构建完成后可以在{根目录}/build/src目录下找到对应的静态链接库文件lib_minnet.a。如果运行机器安装有OpenCV您也可以在{根目录}/build/example目录下找到对应的演示程序,演示程序将基于mnist数据集进行训练并且输出测试结果。
- src目录下存放着框架核心代码。
-
Tensor: 框架核心数据结构
-
Optimizer: 优化器,目前只实现了SGD优化器
-
Layer: 模型核心数据结构,卷积层和全连接层和模型基类
-
Function: 常用损失函数
-
- include目录存放着对应头文件
- example目录下存放着演示程序,想要编译运行需要安装OpenCV
构建以动态图的形式构建神经网络,只有在运算发生时网络才会构建。
核心数据结构Tensor类,该类重载了加、减、乘、除、卷积、矩阵乘法...等运算,并且根据运算完成自动求导,最终实现构建神经网络。神经网络最为核心的前向传播和反向传播功能均由此数据结构实现。
// TODO()
如果您对该框架感兴趣,不妨联系我说出您的想法与问题。email:applezyh@outlook.com