我对这个模型有问题,它试图预测未来 10 天的股市:
model = Sequential()
model.add(LSTM(input_shape=(None, INPUT_DIM),
units=UNROLL_LENGTH, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(128, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(10, activation='softmax'))
model.add(Activation('linear'))
start = time.time()
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam')
model.fit(x_train_unroll, y_train_unroll, batch_size=BATCH_SIZE,epochs=EPOCHS, verbose=2, validation_split=0.05)
错误:
ValueError:检查目标时出错:预期 activation_1 具有形状 (1,) 但得到形状为 (10,) 的数组
numpy 数组的形状:
x_train (1968, 50, 3), y_train (1968, 10), x_test (450, 50, 3), y_test (450, 10)
*X_TRAIN_UNROLL*
[[[0.12339965 0.1352139 0.11937183]
[0.12231633 0.16698145 0.12354637]
[0.12261178 0.13978988 0.11837789]
...
[0.04057514 0.16677908 0.03448961]
[0.03998424 0.16039329 0.03439022]
[0.03407524 0.18277416 0.03906172]]
*Y_TRAIN_UNROLL*
[[0.06529447 0.06007485 0.06165058 ... 0.06342328 0.0627339 0.05465826]
[0.06007485 0.06165058 0.06204451 ... 0.0627339 0.05465826 0.05515068]
[0.06165058 0.06204451 0.06135513 ... 0.05465826 0.05515068 0.04687808]
...
[0.68505023 0.67096711 0.66988379 ... 0.66525507 0.66289147 0.64171755]
[0.67096711 0.66988379 0.66968682 ... 0.66289147 0.64171755 0.65195982]
[0.66988379 0.66968682 0.67234587 ... 0.64171755 0.65195982 0.64250542]]
您的输出不是稀疏编码的,因此您应该将其categorical_crossentropy
用作损失函数而不是sparse_categorical_crossentropy
. 此外,Linear
可以删除模型末尾的激活,它在这里什么都不做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句