在Keras中形成多输入LSTM

2024-05-13 03:15:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用神经网络从共振能中预测中子宽度(我对Keras/NNs还不熟悉,所以提前道歉)。在

据说共振能量和中子宽度之间有联系,能量单调增加的相似性,这可以被模拟成类似于时间序列问题的模型。在

在本质上,我有2列data,第一列是共振能,另一列包含每行的中子宽度。我决定使用LSTM层来帮助网络预测,通过使用以前的计算。在

从不同的tutorialsother answers来看,使用“lookback”参数允许网络在创建数据集时使用以前的时间步长来帮助预测当前时间步进,例如

trainX, trainY = create_dataset(train, look_back)

关于组建NN,我想问一下:

1)鉴于我的特殊应用,我是否需要明确地将每个共振能量映射到同一行上相应的中子宽度?在

2)回溯表明NN可以使用多少以前的值来帮助预测当前值,但它是如何与LSTM层结合的?一、 我不太明白这两样东西怎么用?在

3)在哪一点上反转MinMaxScaler?在

这是主要的两个问题,因为1)我认为不可以,2)我相信这是可能的,但我真的不明白怎么做。我不太清楚我在代码中做了什么错事,理想情况下,我想在代码生效后绘制列车和测试数据中预测值与参考值的相对偏差。如有任何建议,我们将不胜感激:

^{pr2}$

Tags: 代码网络宽度时间神经网络nn相似性keras
1条回答
网友
1楼 · 发布于 2024-05-13 03:15:45

1) Given my particular application do I need to explicitly map each resonance energy to its corresponding neutron width on the same row?

是的,你必须这么做。基本上你的数据必须是。 X=[timestep,timestep,…]y=[标签,标签,…]

2) Look_back indicates how many previous values the NN can use to help predict the current value, but how is it incorporated with the LSTM layer? I.e I dont quite understand how both can be used?

LSTM是序列感知层。你可以把它看作一个隐马尔可夫模型。它采用第一个时间步,计算某些内容,在下一个时间步中考虑前面的计算。回过头来看,通常所说的序列长度只是时间步数的最大值。在

3) At which point do I inverse the MinMaxScaler?

你为什么要那样做?此外,您不需要缩放您的输入。在

你的模型似乎有一个普遍的误解。如果您有input_shape=(look_back,1),那么您根本不需要LSTMs。如果序列只是单个值的序列,那么最好避免LSTMs。此外,拟合您的模型应该包括每个历元之后的验证,以跟踪丢失和验证性能。在

model.fit(x_train, y_train,
      batch_size=32,
      epochs=200,
      validation_data=[x_test, y_test],
      verbose=1)

相关问题 更多 >