Tensorflow 基于Keras的简单神经网络动态展开

Tensorflow 基于Keras的简单神经网络动态展开,tensorflow,machine-learning,keras,neural-network,backpropagation,Tensorflow,Machine Learning,Keras,Neural Network,Backpropagation,我试图复制一个神经网络来计算分子的能量(下图)。能量是键合/非键合相互作用和角/二面体应变的总和。我有4个独立的神经网络,找出每一个的能量,总能量是每一个相互作用的能量之和,可能有100个。在我的数据集中,我只知道总能量 如果我的总能量是使用不同神经网络上的多个(未知数,由分子决定)正向位置来计算的,,那么我如何让KeRa通过动态构造的总和反向传播。非keras Tensorflow方法也适用。(如果我事先知道会有多少键,我会把神经网络的输出加起来,问题是必须在运行时打开神经网络的副本) 这只是

我试图复制一个神经网络来计算分子的能量(下图)。能量是键合/非键合相互作用和角/二面体应变的总和。我有4个独立的神经网络,找出每一个的能量,总能量是每一个相互作用的能量之和,可能有100个。在我的数据集中,我只知道总能量

如果我的总能量是使用不同神经网络上的多个(未知数,由分子决定)正向位置来计算的,,那么我如何让KeRa通过动态构造的总和反向传播。非keras Tensorflow方法也适用。(如果我事先知道会有多少键,我会把神经网络的输出加起来,问题是必须在运行时打开神经网络的副本)

这只是本文给出的一个示例图像:


总之,问题是:“如何实现动态展开并将其输入到Keras中的总和?”

如果其中一个维度未知,Keras层的形状可以为
(无,实际形状…
)。然后我们可以使用一个TensorFlow层,使用
tf在索引为0的轴上求和。减少求和(层,轴=0)
。因此,动态层尺寸在Keras中不难实现


但是,如果输入形状构成更多的约束,我们可以传入附加虚拟0值的完整矩阵和掩码矩阵,然后我们可以使用
tf.multiply
拒绝虚拟值,当然反向传播将自动工作。

Keras层可以被赋予
的形状(无,实际形状…)
如果其中一个尺寸未知。然后我们可以使用一个TensorFlow层,使用
tf在索引为0的轴上求和。减少求和(层,轴=0)
。因此,动态层尺寸在Keras中不难实现


但是,如果输入形状构成更多的约束,我们可以传入附加虚拟0值的完整矩阵和掩码矩阵,然后我们可以使用
tf.multiply
拒绝虚拟值,反向传播当然会自动工作。

您尝试了什么?正如你目前的问题,没有太多的答案。我现在什么都没有,我知道RNN实时展开神经网络,但这里我需要实时展开规则密集网络。我只需要语法,我知道如何使用numpy per say实现。基本上,我的想法是,一旦我一直向前推进POS并生成最终结果,backprop将均匀地传递到所有原始网络,was any sum函数将反向传播。但我想干净利落地做到这一点,而不是编写很多东西,报纸还说他们设法使用了Keras。有语法提示吗?你试过什么?正如你目前的问题,没有太多的答案。我现在什么都没有,我知道RNN实时展开神经网络,但这里我需要实时展开规则密集网络。我只需要语法,我知道如何使用numpy per say实现。基本上,我的想法是,一旦我一直向前推进POS并生成最终结果,backprop将均匀地传递到所有原始网络,was any sum函数将反向传播。但我想干净利落地做到这一点,而不是编写很多东西,报纸还说他们设法使用了Keras。有语法提示吗?