Это скорее концептуальное недоразумение, но когда я go через слой внедрения, мой 2-D x_train превращается в 3-D матрицу. Тем не менее, как я могу приспособить его к моей модели с y_train, который все еще 2-D? Я попытался выполнить flatten () для двумерной матрицы, но это не сработало.
Вот мой код:
def biDirectRNN (vocab_size, embedding_dim, batch_size, subcat, file):
x_train, x_test, y_train, y_test = preprocess (subcat,file)
x,y = y_train.shape
model = tf.keras.Sequential()
model.add(keras.layers.Embedding(input_dim = vocab_size, output_dim = embedding_dim, batch_input_shape=[batch_size, None]))
forward_layer = keras.layers.LSTM(64, return_sequences = True)
backward_layer = keras.layers.LSTM(32, activation='relu', return_sequences=True,
go_backwards=True)
model.add(tf.keras.layers.Bidirectional(forward_layer, backward_layer = backward_layer))
#model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(y, activation = tf.nn.softmax))
model.compile(optimizer = 'adam',
loss='mean_squared_error',
metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=batch_size, epochs = 1)
test_loss, test_acc = model.evaluate(x_test, y_test, epochs=10, batch_size=32)
return test_loss, test_acc
вызов функции:
biDirectRNN (2856, 100, 10, 'Crime', 'Crime14' )
Моя ошибка: InvalidArgumentError: Несовместимые фигуры: [10,2856,2856] против [10,2856]