Ниже приведен мой код для запуска модели LSTM с использованием керас:
epochs = 10
batch_size = 16
MAX_NB_WORDS = 50000
MAX_SEQUENCE_LENGTH = 250
EMBEDDING_DIM = 100
inputs = Input(shape=(X_train.shape[1],))
x = Embedding(MAX_NB_WORDS, EMBEDDING_DIM)(inputs)
x = SpatialDropout1D(0.2)(x)
x = LSTM(100, dropout=0.2, recurrent_dropout=0.2)(x)
logits = Dense(5)(x)
variance_pre = Dense(1)(x)
variance = Activation('softplus', name='variance')(variance_pre)
logits_variance = concatenate([logits, variance], name='logits_variance')
softmax_output = Activation('softmax', name='softmax_output')(logits)
model = Model(inputs=inputs, outputs=[logits_variance,softmax_output])
model.summary()
model.compile(
optimizer=Adam(lr=1e-3, decay=0.001),
loss={
'logits_variance': bayesian_categorical_crossentropy(100, 10),
'softmax_output': 'categorical_crossentropy'
},
metrics={'softmax_output': metrics.categorical_accuracy},
loss_weights={'logits_variance': .2, 'softmax_output': 1.})
history = model.fit(X_train, Y_train, epochs=epochs,
batch_size=batch_size,validation_split=0.1,callbacks=[EarlyStopping(monitor='val_loss',
patience=3, min_delta=0.0001)])
Форма X_train (2002, 250) и форма Y_train (2002, 5)
Я получаю ошибку нижекогда я запускаю над моделью:
ValueError: индекс среза 10 измерения 1 выходит за пределы. для 'loss_34 / logits_variance_loss / strided_slice_1' (op: 'StridedSlice') с входными формами: [?, 6], [2], [2], [2] и с вычисленными входными тензорами: input [1] = <0 10>, вход [2] = <0 11>, вход [3] = <1 1>.
Пожалуйста, помогите, что может быть проблемой с моделью.