tf.reduce_mean()用法总结

概述

tf.reduce_mean()用于计算tensor(张量)沿着指定的数轴(即tensor的某一维度)上的平均值,用作降维或者计算tensor的平均值。

指定一个维度的平均值计算请参考https://blog.csdn.net/silent1cat/article/details/119782064

另外一种情况

当axis参数是列表形式时,即不止指定一个轴时,也是计算平均值,并且列表中指定轴的顺序不会影响结果。列表长度为1时和用axis指定的结果一致。列表长度大于1时,计算均值之前的加和方式有变化,即如果是[0, 1]表示先将元素按照第0轴相加,然后按照第一轴相加后再计算平均,如下例子,原数据Y的维度为(2, 2, 3),先第0轴再第1轴后数据有三个即(18, 22, 26),因为是4个数据相加,所以分别除以4,则得最终结果(4.5, 5.5, 6.5)。

直接上代码

import numpy as np
import tensorflow as tf

X = np.array([[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]])
Y = tf.cast(X, tf.float32)
print(Y.shape)
mean_all = tf.reduce_mean(Y)

mean_0 = tf.reduce_mean(Y, axis=0)  # 可以添加keepdims=True,生成的结果的与Y的维度一样。反之,降维
mean_1 = tf.reduce_mean(Y, axis=1)
mean_2 = tf.reduce_mean(Y, axis=2)
mean_3 = tf.reduce_mean(Y, [0])
mean_4 = tf.reduce_mean(Y, [0, 1])  # 可以任意组合
mean_5 = tf.reduce_mean(Y, [0, 1, 2])
print("mean_all:\n", mean_all)
print("mean_0:\n", mean_0)
print("mean_1:\n", mean_1)
print("mean_2:\n", mean_2)
print("mean_3:\n", mean_3)
print("mean_4:\n", mean_4)
print("mean_5:\n", mean_5)

结果

(2, 2, 3)
mean_all:
 tf.Tensor(5.5, shape=(), dtype=float32)
mean_0:
 tf.Tensor(
[[3. 4. 5.]
 [6. 7. 8.]], shape=(2, 3), dtype=float32)
mean_1:
 tf.Tensor(
[[1.5 2.5 3.5]
 [7.5 8.5 9.5]], shape=(2, 3), dtype=float32)
mean_2:
 tf.Tensor(
[[ 1.  4.]
 [ 7. 10.]], shape=(2, 2), dtype=float32)
mean_3:
 tf.Tensor(
[[3. 4. 5.]
 [6. 7. 8.]], shape=(2, 3), dtype=float32)
mean_4:
 tf.Tensor([4.5 5.5 6.5], shape=(3,), dtype=float32)
mean_5:
 tf.Tensor(5.5, shape=(), dtype=float32)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值