У підручнику для початківців 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]
це має сенс, оскільки середнє значення [1, 2]
і [1, 2]
є [1.5, 1.5]
, але що відбувається tf.reduce_mean(x, 1)
?