Позвольте мне предвосхитить это, сказав, что я очень плохо знаком с нейронными сетями, и я впервые использую numpy, tenorflow или keras.
Я написал нейронную сеть для распознавания рукописных цифр, используя набор данных MNIST. Я следовал этого урока от Sentdex и заметил, что он использовал print(np.argmax(predictions[0]))
для печати первого индекса из массива предсказаний.
Я попытался запустить программу с заменой этой строки на print(predictions[i])
, (для меня было установлено значение 0), но вывод не был числом, это было:
[2.1975785e-08 1.8658861e-08 2.8842608e-06 5.7113186e-05 1.2067199e-10
7.2511304e-09 1.6282028e-12 9.9993789e-01 1.3356166e-08 2.0409643e-06]
.
Мой код, который меня смущает:
predictions = model.predict(x_test)
for i in range(10):
plt.imshow(x_test[i])
plt.show()
print("PREDICTION: ", predictions[i])
Я прочитал документацию для функции argmax (), и из того, что я понимаю, она берет массив x-измерения, преобразует его в одномерный массив, а затем возвращает индекс наибольшего значения. В документации Keras для model.predict () указано, что функция возвращает пустой массив предсказаний сетей. Так что я не понимаю, почему мы должны использовать argmax () , чтобы правильно распечатать прогноз, потому что, как я понимаю, он имеет совершенно не связанную цель.
Извините за плохое форматирование кода, я не мог понять, как правильно вставить многострочные куски кода в мой пост