众所周知,DNN由许多层组成,这些层由许多神经元组成,这些神经元将相同的功能应用于输入的不同部分。同时,如果我们使用Tensorflow执行DNN任务,我们将自动获得由Tensorflow生成的数据流图,我们可以使用Tensorboard将数据流图可视化。但是层中没有神经元。所以我想知道Tensorflow数据流图和DNN之间的关系是什么?当DNN层的神经元映射到数据流图时,它是如何表示的?DNN中的神经元与张量流中的节点(代表一个操作)有什么关系?我刚开始学习DNN和Tensorflow,请帮我按顺序安排思路。谢谢:) enter image description here
答案 0 :(得分:2)
您必须区分DNN的隐喻表示及其数学描述。经典神经元背后的数学是加权输入和偏差的总和(通常在此结果上调用激活函数) 因此,在这种情况下,您有一个输入向量,由一个权重向量(包含可训练变量),然后用偏差标量(也可训练)进行总结
如果你现在考虑一层神经元而不是一层神经元,那么权重将成为一个矩阵,而偏差则成为一个向量。因此,计算前馈层只不过是一个矩阵乘法,后面跟着一个向量。
这是您在张量流图中可以看到的操作。 实际上,您可以通过这种方式构建神经网络,而无需使用使用Layer抽象的所谓高级API。 (许多人在张量流动的早期就已经这样做了)
tensorflow为你做的实际“魔法”是计算和执行这个前言传递的衍生物,以便计算权重的更新。