tf.reduce_* 应用理解

本文介绍了TensorFlow中的tf.reduce_* API,重点解析了如何使用tf.reduce_mean进行张量的数学计算,例如在图像的通道上求平均值。通过示例展示了在不同维度上应用该操作,如将彩色图像转换为灰度图像,以及在引入batch维度后的全局平均池化操作。
部署运行你感兴趣的模型镜像

tf.reduce_*系列是tensorflow中对张量计算最常用的一个API,主要作用就是对指定维度的张量进行数学计算,并降维(指定维度数值计算后消失)
以tf.reduce_mean为例,能对指定维度进行求均值操作

tf.reduce_mean(
    input_tensor, axis=None, keepdims=False, name=None
)
参数注解
input_tensor输入
axis指定维度,如果为None(默认),对所有维度进行操作
keepdims保持原有输入维度,即指定降维维度保持长度为1
name命名

比如第一张高4, 宽4,3色的图

img1 = tf.random.normal([4,4,3])

在3色通道(axis=2)求平均后

tf.reduce_mean(img1, axis=2)

<tf.Tensor: shape=(5, 4), dtype=float32, numpy=
array([[-0.9854448 , -1.0194012 , 1.4945674 , -3.3110707 ],
[ 1.5118184 , 1.2675568 , -0.02910066, -2.9339857 ],
[ 2.526368 , 0.7716782 , -0.24042308, -1.1135492 ],
[ 0.81224906, 1.0296633 , 1.6201943 , 2.174279 ],
[ 0.06326652, 0.9522829 , -1.2772858 , -2.5536993 ]],
dtype=float32)>

axis维度求均值后消失,变成一个高5,宽4的灰度图

再比如对于同一张图片,引入batch维度后

img2 = tf.random.normal([1,4,4,3])

对画面的高和宽取全局平均

tf.reduce_mean(img2, axis=[1,2])

<tf.Tensor: shape=(1, 3), dtype=float32, numpy=array([[-0.29505053, 0.18306601, 0.0032706 ]], dtype=float32)>

此操作过程与GlobalAveragePooling2D相同

tf.keras.layers.GlobalAveragePooling2D()(img2)

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值