我试图复制一个神经网络来计算分子的能量(下图)。能量是键-非键相互作用和角/二面角应变之和。我有四个独立的神经网络,找出每个网络的能量,总能量是每个相互作用的能量之和,其中可能有100个。在我的数据集中,我只知道总能量。
如果我的总能量在不同的神经网络上使用多个(由分子决定的未知数)正演()来计算,我如何使角点通过动态构造的和进行反向传播。一种非方法也会有效。(如果我在手头上知道会有多少个债券,问题就必须在运行时展开神经网络的副本),我就会把神经网络的输出汇总在一起。
这只是本文给出的一个例子:

总之,问题是:“如何实现动态展开并将其提供给Keras中的sum?”
发布于 2020-06-22 10:04:29
如果不知道其中一个维度,Keras层可以被赋予(None, actual-shape...)的形状。然后,我们可以使用一个TensorFlow层对索引为0的轴进行tf.reduce_sum(layer, axis=0)求和。因此,在Keras中实现动态层大小并不困难。
然而,如果输入形状构成更多的约束,则可以传递带有虚拟0值的完整矩阵,以及一个掩码矩阵,然后我们可以使用tf.multiply拒绝虚拟值,反传播当然会自动工作。
https://stackoverflow.com/questions/59045283
复制相似问题