Я пытаюсь сделать простую модель Keras.Но независимо от того, какую выходную форму я указываю, выходной слой всегда имеет форму (1,)
, поэтому я не могу обучить свою модель из-за несовпадения выходного слоя и целевых данных.
import keras
from keras.models import Sequential
from keras.layers import InputLayer, LSTM, Dense
# 63 is the number of unique characters
# 128 is the length of a sequence of characters
X = ... # X is an one-hot ndarray; X.shape == (96092, 128, 63)
Y = ... # Y is an one-hot ndarray; Y.shape == (96092, 63)
model = Sequential()
model.add(InputLayer([128, 63]))
model.add(LSTM(96))
model.add(Dense(63))
model.compile(
optimizer=keras.optimizers.RMSprop(1e-3, decay=1e-5),
loss=keras.losses.sparse_categorical_crossentropy,
)
model.fit(X, Y) # ValueError: Error when checking target: expected dense_4 to have shape (1,) but got array with shape (63,)
Как вы можете видетьформа выходного плотного слоя равна (1,)
, но она должна иметь форму (63,)
.Что я делаю не так?
Я использую Google Colab с предустановленными Keras.