TensorFlow:tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
转载:https://www.cnblogs.com/yuzhuwei/p/6986171.html 1.概述
在深度学习里研究的物体的关系,都是比较复杂的。比如一个图片32X32大小的,它的像素信息就有1024个点,如果考虑RGB三种颜色,就是1024X3了。对于目前还没有办法构造140亿个神经元的计算机来说,只能干一件事情,就是简化,化繁为简。为了简化,就需要使用算法来进行,在数学上最简单的处理,就是求平均值。这个道理非常简单,如果10个数,只要把它们相加,再除以10即可。对于0维数字,可以这样来计算,如果对于N维的张量,就不是这么简单的计算了。就拿二维的矩阵来说,它可以横着算,还可以是竖着算,还可以全部加到一起,再除以总数。可见对于N维的张量来说,有更多的可能,那么就得抽像一个数轴出来。数轴在初中的代数就学习了,可见数轴在高等数学里也会使用到的,N维张量,就是N个数轴的表示,如果沿着不同的数轴进行计算,就会产生不同的作用。其实平均值也可以算是降维思想的一种。
在TF里,就提供了这样一个算法来计算张量的平均值:
2.tf.reduce_mean
tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
沿着张量不同的数轴进行计算平均值。
input_tensor: 被计算的张量,确保为数字类型。
axis: 方向数轴,如果没有指明,默认是所有数轴都减小为1。
keep_dims: 如果定义true, 则保留维数,但数量个数为0.
name: 操作过程的名称。
reduction_indices: 为了旧函数兼容的数轴。
返回值:
降低维数的平均值。
3.代码实现
import tensorflow as tf
#创建张量
x = tf.Variable([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]);
#显示
init = tf.global_variables_initializer();
with tf.Session() as sess:
sess.run(init);
#tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
y = tf.reduce_mean(x);
y01 = tf.reduce_mean(x, axis=0, keep_dims=False);
y02 = tf.reduce_mean(x, axis=0, keep_dims=True);
y1 = tf.reduce_mean(x, axis=1); print("x = ", x.eval());
print("tf.reduce_mean(x) = ", y.eval());
print("tf.reduce_mean(x, axis=0, keep_dims=False) = ", y01.eval());
print("tf.reduce_mean(x, axis=0, keep_dims=True) = ", y02.eval())
print("tf.reduce_mean(x, axis=1) = ", y1.eval());
执行结果:
('x = ', array([[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]], dtype=float32))
('tf.reduce_mean(x) = ', 5.0)
('tf.reduce_mean(x, axis=0, keep_dims=False) = ', array([ 4., 5., 6.], dtype=float32))
('tf.reduce_mean(x, axis=0, keep_dims=True) = ', array([[ 4., 5., 6.]], dtype=float32))
('tf.reduce_mean(x, axis=1) = ', array([ 2., 5., 8.], dtype=float32))
总结:
tf.reduce_mean(x)表示计算全局平均值;
tf.reduce_mean(x, axis=0)表示计算y轴平均值;
tf.reduce_mean(x, axis=1)表示计算x轴平均值;
TensorFlow:tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)的更多相关文章
- tensorflow中 tf.reduce_mean函数
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值. reduce_mean(input_ ...
- 1、求loss:tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None))
1.求loss: tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)) 第一个参数log ...
- 【tensorflow基础】tensorflow中 tf.reduce_mean函数
参考 1. tensorflow中 tf.reduce_mean函数: 完
- TensorFlow:tf.train.Saver()模型保存与恢复
1.保存 将训练好的模型参数保存起来,以便以后进行验证或测试.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf.train.S ...
- TensorFlow:tf.nn.max_pool实现池化操作
tf.nn.max_pool(value, ksize, strides, padding, name=None) 参数是四个,和卷积很类似: 第一个参数value:需要池化的输入,一般池化层接在卷积 ...
- tf.reduce_mean
tf.reduce_mean reduce_mean( input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=N ...
- TensorFlow函数:tf.reduce_sum
tf.reduce_sum 函数 reduce_sum ( input_tensor , axis = None , keep_dims = False , name = None , reducti ...
- tf.reduce_mean函数用法及有趣区别
sess=tf.Session() a=np.array([1,2,3,5.]) # 此代码保留为浮点数 a1=np.array([1,2,3,5]) # 此代码保留为整数 c=tf.reduce_m ...
- tensorflow笔记3:CRF函数:tf.contrib.crf.crf_log_likelihood()
在分析训练代码的时候,遇到了,tf.contrib.crf.crf_log_likelihood,这个函数,于是想简单理解下: 函数的目的:使用crf 来计算损失,里面用到的优化方法是:最大似然估计 ...
随机推荐
- git 常用命令以及解决问题方法
1. 创建分支: git branch test 2.切换分支: git checkout test 或切换为主分支 git checkout master 3.查看当前分支 git branch - ...
- 开源搜素引擎——Nutch
Nutch简介 Nutch 是一个开源Java实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行 ...
- 3. EM算法-高斯混合模型GMM
1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 GM ...
- 机器学习集成算法--- 朴素贝叶斯,k-近邻算法,决策树,支持向量机(SVM),Logistic回归
朴素贝叶斯: 是使用概率论来分类的算法.其中朴素:各特征条件独立:贝叶斯:根据贝叶斯定理.这里,只要分别估计出,特征 Χi 在每一类的条件概率就可以了.类别 y 的先验概率可以通过训练集算出 k-近邻 ...
- Android RecyclerView网格布局
一个简单的网格布局activity_main.xml <?xml version="1.0" encoding="utf-8"?> <andr ...
- [转]mysql中的字符串的拼接
字符串的拼接 1,Mysql 在Java.C#等编程语言中字符串的拼接可以通过加号“+”来实现,比如:"1"+"3"."a"+"b ...
- asp.net gridview 如何实现行点击事件
第一步:绑定行点击事件 protected void GV_DATA_RowDataBound( object sender, GridViewRowEventArgs e ) { if( e.Row ...
- netty tcp拆包
private List<byte[]> getCompletePacket(byte[] bytes, ByteBuf byteBuf) { byte[] clone = bytes.c ...
- 树莓派3B+首次登陆通过网络
树莓派3B+默认串口不能登录,即使可使用可需要通过连线方式连接,如何才能直接通过网络ssh登录树莓派呢? 串口问题及使用 树莓派3的UART串口的使用问题,该串口问题的官方反馈及回复请参考这两篇官方博 ...
- 15.5.26-linq to ef多级外链查询
方法一: var query = db.Test.Where(x => true) .Include(x => x.ColB.Select(s => s.ColBRelated)) ...