Может кто-нибудь сказать мне, почему ниже строка дает мне False. Зная, что я использую tenorflow 2.0

tf.argmax(input= tf.constant([0., 1, 0.]) == tf.argmax(input=tf.constant([0., 1, 0.])
False
0
W. Sam 3 Май 2019 в 01:37

3 ответа

Лучший ответ

Проблема была с равенством. Я должен использовать tf.equal с тензорами.

0
W. Sam 3 Май 2019 в 18:37

Во-первых, tf.constant([0., 1, 0.]) создаст вектор из [0,0, 1,0, 0,0].

Далее, tf.argmax(input=tf.constant([0., 1, 0.]) создаст целое число (поскольку вы используете argmax с axis=0, что будет 1. Элемент с индексом 1 в векторе имеет наибольшее значение.

Вы пытаетесь сравнить,

[0,0, 1,0, 0,0] и 1

Которые, в любом случае, не равны. Следовательно, вывод был ложным.

0
Shubham Panchal 3 Май 2019 в 01:41

Помните, что перед оценкой вы работаете с тензорами, а не со значениями. Поэтому всегда используйте специальные функции тензорного потока, например, tf.equal() в этом случае.

0
Greenonline 3 Май 2019 в 10:17