我正在研究这样的 LSTM 神经网络编码:
hist = model.fit(train, label,batch_size=16, epochs=1000)
但是遇到错误:
ValueError:无法挤压暗淡[1],预期尺寸为1,'{{node Squeeze}} = SqueezeT = DT_INT64,squeeze_dims = [-1]'的尺寸为16,输入形状:[?,16]。
这是模型序列的第一个代码:
from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout
import numpy as np
batch_size = 16
model = Sequential()
model.add(LSTM(56, activation='relu',input_shape=(window_length, number_of_features),return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(56, activation='relu', return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(number_of_features))
model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
请问可以解决吗?谢谢!
尝试检查模型摘要以查看数据集形状如何在网络中流动,并检查初始数据集形状。当数据集不匹配时就会发生这种情况。您需要以正确的方式塑造形状。当谈到暗淡兼容性时,任何数字都可以与 1 兼容,但不能与其他数字兼容。
(1, 1) 对于 (1, 16) 和 (16, 任何数字) 都可以,但如果 (1, 16 之外的任何其他数字) 或 (16, 任何其他数字) 则 (1, 16) 不起作用。检查广播的 Numpy 规则。张量流也是如此。
如果 = 是兼容性的标志,那么:
1 = any number
same number = same number
one number not = same number