【发布时间】:2022-09-26 16:27:41
【问题描述】:
我正在尝试根据输入数字预测整数序列。
输入由具有 10 个整数的值组成:
array([[2021001001], [2021001002],...,
,[2021335249]],dtype=int64)
输出如下,一个包含 7 个整数的数组。
array([[23, 26, 17, ..., 21, 16, 4],
[13, 24, 2, ..., 27, 10, 28],
...,
[ 5, 16, 28, ..., 12, 27, 26]], dtype=int64)
这意味着序列号(输入)[2021001001] 将返回以下序列(输出)[23, 26, 17, ..., 21, 16, 4]。
我尝试在这些输入和输出上训练 LSTM,以根据序列号预测接下来的序列是什么。我正在使用大约 +60K 的历史数据来执行此操作。到目前为止,这是我所做的:
model = tf.keras.Sequential()
model.add(layers.LSTM(256, activation=\'relu\', input_shape=(10, 1), recurrent_dropout=0.2))
model.add(layers.Dense(7))
model.compile(optimizer=tf.keras.optimizers.Adam(0.00001), loss=tf.keras.losses.MeanSquaredError(), metrics=[\'accuracy\'])
model.fit(inputs, output, epochs=10, verbose=1, validation_split=0.2, batch_size=256)
在拟合后测试模型时,我们会得到如下奇怪的结果:
predictNextNumber = model.predict(tests_[0], verbose=1)
print(predictNextNumber)
1/1 [==============================] - 0s 253ms/step
[[[14.475913][14.757163][14.874351][14.702476][14.639976][14.624351][14.655601]]]
While the expected output should be an array of integers [24, 12, 3, 5, 11, 8, 4].
我无法弄清楚问题所在。 Keras 起初对这些形状抱怨了很多,但当它被处理时,我一直收到不好的结果。任何帮助,将不胜感激。
标签: python tensorflow keras lstm lstm-stateful