Есть ли способ вывода прогнозов сети с помощью Tensorflow?
Мои выходы использовали одно горячее представление для 12 классов.
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]
etc...
При попытке получить прогнозы из моей модели для заданного ввода я выполнил следующий код
prediction=tf.argmax(y,1)
best = sess.run([prediction],feed_dict = {x: batch_x, y: batch_y,
seqlen: batch_seqlen})
print("Prediction: ")
print(best)
Когда я запустил этот код и распечатал прогноз, я получил следующий результат:
[array([1, 5, 7, 7, 7, 4, 7, 9, 4, 4, 9, 6, 7, 8, 3, 2], dtype=int64)]
размер моего пакета, который я ввел, был 16, поэтому было разумно иметь 16 выходов. Однако ни одно из них не является представлением One Hot (не уверен, что выходные данные tenorflow предназначены для взаимодействия как индексы, поэтому 1 на самом деле будет некоторой формой onehot
Есть ли способ для каждого конкретного X создать ранжированный список прогнозов, которые модель считает наиболее вероятными с учетом этого X?
Имеет ли это смысл?






Вы берете tf.argmax из 1-горячих векторов, поэтому вы видите индексы вместо ожидаемых 1-горячих векторов.
Чтобы получить отсортированный список предсказаний класса, вы можете взять свой вектор предсказания и применить values, indices = tf.nn.top_k(prediction), values будет вашими предсказаниями, отсортированными в порядке убывания, а indices будет теми отсортированными индексами values '.