У меня есть слово встраивание нейронной сети, которое отлично работает на небольших наборах моего корпуса, но когда я увеличиваю обучающий набор до сотен тысяч записей (не меняя ничего другого), я получаю следующую ошибку:
ValueError: Error when checking input: expected documents to have shape (46,) but got array with shape (1,)
Краткое описание модели выглядит следующим образом:
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
ingredients (InputLayer) (None, 46) 0
__________________________________________________________________________________________________
documents (InputLayer) (None, 46) 0
__________________________________________________________________________________________________
ingredients_embedding (Embeddin (None, 46, 50) 8709200 ingredients[0][0]
__________________________________________________________________________________________________
documents_embedding (Embedding) (None, 46, 50) 8709200 documents[0][0]
__________________________________________________________________________________________________
lambda_1 (Lambda) (None, 50) 0 ingredients_embedding[0][0]
__________________________________________________________________________________________________
lambda_2 (Lambda) (None, 50) 0 documents_embedding[0][0]
__________________________________________________________________________________________________
dot_product (Dot) (None, 1) 0 lambda_1[0][0]
lambda_2[0][0]
__________________________________________________________________________________________________
reshape_1 (Reshape) (None, 1) 0 dot_product[0][0]
==================================================================================================
Total params: 17,418,400
Trainable params: 17,418,400
Non-trainable params: 0
А вот точка входа в модель, где генератор выдает данные для обучения:
negative_ratio, n_positive = 2, 100
t = Trainer()
training_data_pairs = t.index_and_encode()
training_size, embedding_size, input_size = len(training_data_pairs), 50, 46
batch = t.generate_batch(n_positive, negative_ratio=negative_ratio)
model = model(training_size, embedding_size, input_size)
h = model.fit_generator(
batch,
epochs=10,
steps_per_epoch=int(training_size/n_positive),
verbose=2
)