Keras:维度1的切片索引10越界错误

Keras:维度1的切片索引10越界错误,keras,lstm,Keras,Lstm,下面是我使用keras运行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

下面是我使用keras运行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_列车形状为(2002,250),Y_列车形状为(2002,5)

当我运行上述模型时,出现以下错误:

ValueError:维度1的切片索引10超出范围。对于输入形状为:[?、6]、[2]、[2]、[2]和[2]且具有计算输入张量的“损失”\u 34/logits\u方差\u损失/跨步切片\u 1”(op:“跨步切片”):输入[1]=,输入[2]=,输入[3]=


请就模型可能出现的问题提供帮助。

您的模型有两个输出,因此,当您培训(适合)模型时,您应该传递两个标签的列表,即一个用于登录,另一个用于差异。您的模型有两个输出,因此当您培训(适合)模型时,您应该传递两个标签的列表,即,一个用于登录,另一个用于差异。