我们的目的是:借助C++搭建一个类似于pytorch,tensorflow的深度学习框架,对标pytorch,tensorflow实现对应的功能。由于本人能力有限,下面本人将借助C++搭建一个简单的全连接神经网络,并且尝试解释里面的算子定义和计算图构建。
算子定义
回顾pytorch里面搭建的全连接神经网络,我们以最简单的全连接神经网络举例子,
这种神经网络涉及向量的传输,矩阵乘法计算,以及激活函数定义,其中的矩阵计算以及激活函数就可以理解为神经网络里面的算子。之前在上一篇文章添加链接描述我们介绍了CUDA版本的矩阵乘法,这里我们不妨以OpenMP为工具搭建一个CPU版本的矩阵乘法算子。代码框架如下:
src/omp_matrix.cpp
#include