【发布时间】:2018-12-19 11:36:02
【问题描述】:
我最近写了一个 LSTM 模型来预测序列:
############### BUILD MODEL ###############
''' HERE WE ARE CREATING THE LSTM MODEL '''
model = Sequential()
model.add(LSTM(128, input_shape=(X.shape[1:]), activation='relu', return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(128,input_shape=(X.shape[1:]), activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(10, activation='softmax'))
# In[8]:
'''HERE WE ARE CREATING AN OPTIMIZER AND THEN TRAINING OUR MODEL'''
opt = tf.keras.optimizers.Adam(lr=0.001, decay=1e-6)
model.compile(
loss='sparse_categorical_crossentropy',
optimizer=opt,
metrics=['accuracy'],
)
model.fit(X, Y, batch_size=10, epochs=1)
np.shape(X) = (237, 30, 3) 和 np.shape(Y) = (237, 3)。但是在将这些数据拟合到模型时,它会返回一个错误:
ValueError: Error when checking target: expected dense_1 to have shape (1,) but got array with shape (3,)
这段代码有什么问题?
【问题讨论】:
-
您可以通过
model.summary()打印出模型每一层的输入和输出形状。然后就可以查看dense_1是哪一层了,有什么问题。
标签: python tensorflow keras lstm rnn