问题描述
嗨,我有一个 RNN,它能够“纠正”由偏微分方程 (PDE) 求解器(输入)给出的域 u(x,t) 的第一次猜测实际的真实答案(目标)。 x 中字段的点数(512 个特征)是固定的,但馈送到网络的时间步数是可变的(比如在 20 到 200 之间)。给出初始猜测的求解器具有周期性边界条件:输入特征在 x 中的平移会导致输出的等效平移,即。翻译等方差。所以我的神经网络也应该提供更正。
我在中心的示例中对其进行了训练,效果很好。然而,当然,如果我给它一个在 x 中移动的输入,就像下图一样,它会给出噪声作为输出。
让 LSTM 网络成为翻译等变的最聪明的方法是什么?
我的想法:
我正在考虑将卷积层(非常适合平移不变性)作为输入,将此输出 - 抽象特征 - 提供给 lstm 层,然后将校正后的抽象特征解码回实际解决方案字段 u(x,t) 与卷积层?但这似乎有太多参数无法训练?
另一种方法是仅在许多翻译数据示例上训练 RNN-only。但我觉得这并没有“利用”输入和输出由于周期性边界条件而具有平移不变性的信息。
我发现了什么:
仅当前代码 RNN:
n_x = 512
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.LSTM(units=lstm_units,input_shape=(None,n_x),return_sequences=True))
model.add(tf.keras.layers.Dense(dense_units,activation='relu'))
model.add(tf.keras.layers.Dense(n_x,activation='linear'))
model.compile(loss='mse',optimizer='adam',metrics=['mse'])
非常感谢您的帮助/建议!!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)