В руководстве для начинающих MNIST есть утверждение
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
tf.cast
в основном меняет тип тензора объекта, но в чем разница между tf.reduce_mean
и np.mean
?
Вот документ tf.reduce_mean
:
reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)
input_tensor
: Уменьшаемый тензор. Должен иметь числовой тип.
reduction_indices
: Размеры для уменьшения. ЕслиNone
(по умолчанию), уменьшает все размеры.
# '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.]
Для одномерного вектора это выглядит так np.mean == tf.reduce_mean
, но я не понимаю, что в нем происходит tf.reduce_mean(x, 1) ==> [1., 2.]
. tf.reduce_mean(x, 0) ==> [1.5, 1.5]
вроде имеет смысл, так как mean of [1, 2]
and [1, 2]
is [1.5, 1.5]
, но что с этим происходит tf.reduce_mean(x, 1)
?