Я работаю над кодом, чтобы распознавать распознавать текстовый язык. Тексты, которые я использую, написаны на английском, немецком или французском языках. Я установил словарь для каждого языка и сумел преобразовать тексты в numpy массивы. Такой массив numpy называется words_as_int_en и имеет форму (183,). Я также определил модель Keras, используя следующий код:
# number of units in layers
n_layer = [32, 3]
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(n_layer[0], input_shape=(183,))) #just for testing using this input
model.add(tf.keras.layers.Dense(n_layer[1], activation='softmax'))
model.compile(optimizer='Adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
W0 = model.get_weights() # to reset model to original state:
model.summary()
Я использовал то же измерение для ввода, чтобы иметь возможность проверить мою модель с использованием ранее упомянутого массива numpy.
Однако при вызове модели с words_as_int_en в качестве аргумента с использованием команды
model(words_as_int_en)
я получаю следующее сообщение об ошибке:
* ПРЕДУПРЕЖДЕНИЕ: tenorflow : Модель была построена с формой Tensor («dens_7_input: 0», shape = (None, 183), dtype = float32) для ввода (None, 183), но она была повторно вызвана на Tensor с несовместимой формой (183,) .
InvalidArgumentError Traceback (последний последний вызов) в () ----> 1 модель (words_as_int_en) 8 кадров /usr/local/lib/python3.6/dist-packages/six.py в Raise_From (значение, from_value) InvalidArgumentError: В [0] не является матрицей. Вместо этого он имеет форму [183] [Op: MatMul] *
Я озадачен, потому что мне кажется, что words_as_int_en имеет такую же форму, как определено в моей модели.
Кто-нибудь знает, почему я получаю это сообщение об ошибке и как я могу решить эту проблему?
Спасибо за помощь.