Как исправить TypeError относительно прогноза TensorFlow?

Я пытался выполнить предсказания нейронной сети с помощью TensorFlow, и оценка работает нормально, но когда я помещаю те же данные в прогноз, это дает ошибку типа.

Данные в training_data и test_data представляют собой 2d числовые массивы целых чисел, а training_labels и test_labels представляют собой 1d числовые массивы целых чисел.

model = keras.Sequential([
  keras.layers.Dense(24, activation=tf.nn.selu),
  keras.layers.Dense(10, activation=tf.nn.tanh),
  keras.layers.Dense(5, activation=tf.nn.selu),
  keras.layers.Dense(5, activation=tf.nn.softmax)
])


model.compile(optimizer='SGD',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(training_data, training_labels, epochs=10)

test_loss,test_acc = model.evaluate(test_data, test_labels)

prediction = model.predict(test_data)

При выводе строки прогноза код работает, как и ожидалось, но теперь выдает следующее сообщение об ошибке:

Traceback (most recent call last):
  File "learner.py", line 132, in <module>
    print("Prediction: " + model.predict(test_data))
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('S32') dtype('S32') dtype('S32')

Я убедился, что все данные являются целыми числами, поэтому я не уверен, почему существует конфликт типов.

1 ответ

test_data должен иметь тот же тип данных, что и тип (training_data[0]) при использовании предиката, и он будет возвращать тип данных типа (training_labels[0])

К тому же,

print("Prediction: " + model.predict(test_data))

должно быть

print("Prediction: " + str(model.predict(test_data)))
Другие вопросы по тегам