No tutorial do iniciante MNIST , há a instrução
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
tf.cast
basicamente muda o tipo de tensor do objeto, mas qual é a diferença entre tf.reduce_mean
e np.mean
?
Aqui está o documento sobre tf.reduce_mean
:
reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)
input_tensor
: O tensor a ser reduzido. Deve ter tipo numérico.
reduction_indices
: As dimensões a reduzir. SeNone
(o padrão), reduz todas as dimensões.# 'x' is [[1., 1. ]] # [2., 2.]] tf.reduce_mean(x) ==> 1.5 tf.reduce_mean(x, 0) ==> [1.5, 1.5] tf.reduce_mean(x, 1) ==> [1., 2.]
Para um vetor 1D, parece np.mean == tf.reduce_mean
, mas não entendo o que está acontecendo em tf.reduce_mean(x, 1) ==> [1., 2.]
. tf.reduce_mean(x, 0) ==> [1.5, 1.5]
meio que faz sentido, uma vez que significa [1, 2]
e [1, 2]
é [1.5, 1.5]
, mas o que está acontecendo tf.reduce_mean(x, 1)
?