Несовместимость форм ввода и аргумента модели, используемых для вызова модели - PullRequest
0 голосов
/ 06 марта 2020

Я работаю над кодом, чтобы распознавать распознавать текстовый язык. Тексты, которые я использую, написаны на английском, немецком или французском языках. Я установил словарь для каждого языка и сумел преобразовать тексты в 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 имеет такую ​​же форму, как определено в моей модели.

Кто-нибудь знает, почему я получаю это сообщение об ошибке и как я могу решить эту проблему?

Спасибо за помощь.

...