TensorFlow 中计算输入张量的矩(均值和方差) tf.nn.moments 的基本用法及实例代码

一、环境

TensorFlow API r1.12

CUDA 9.2 V9.2.148

cudnn64_7.dll

Python 3.6.3

Windows 10

 

二、官方说明

计算输入张量 x 的平均值和方差

https://tensorflow.google.cn/api_docs/python/tf/nn/moments

按照 axis 指定的轴计算输入张量 x 中的平均值和方差

如果在批量标准化 batch normalization 操作中计算这些矩,请参考 tf.nn.batch_normalization

对于全局标准化 “global normalization”,需要设置卷积核的形状为 [batch, height, width, depth],同时 axis = [0, 1, 2]

对于简单的标准化,设置 axis = [0] 即可(单个批次)

tf.nn.moments(
    x,
    axes,
    shift=None,
    name=None,
    keep_dims=False
)

参数:

x:输入张量

axes:整型数组,控制沿什么轴来计算平均值和方差 

shift:在当前版本实现中已经不使用了

name:用于控制计算矩的操作的作用域范围

keep_dims:生生和输入具有相同维度的矩

 

返回:

两个张量对象:平均值和方差

 

三、实例

输入张量 x 的维度为 1 且 axes = [0],即计算向量的平均值和方差

>>> import tensorflow as tf
>>> data = tf.constant(value=[0,1,2,3,4,5,6,7,8,9], dtype=tf.float32)

>>> mean,variance = tf.nn.moments(x=data, axes=[0])

>>> mean
<tf.Tensor 'moments_1/Squeeze:0' shape=() dtype=float32>

>>> variance
<tf.Tensor 'moments_1/Squeeze_1:0' shape=() dtype=float32>

>>> sess = tf.InteractiveSession()
>>> print(sess.run(fetches=[mean,variance]))
[4.5, 8.25]
>>> sess.close()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn-WJW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值