Tensorflow中的降维函数tf.reduce_*使用总结


Posted in Python onApril 20, 2020

在使用tensorflow时常常会使用到tf.reduce_*这类的函数,在此对一些常见的函数进行汇总

1.tf.reduce_sum

tf.reduce_sum(input_tensor , axis = None , keep_dims = False , name = None , reduction_indices = None)

参数:

  • input_tensor:要减少的张量。应该有数字类型。
  • axis:要减小的尺寸。如果为None(默认),则缩小所有尺寸。必须在范围[-rank(input_tensor), rank(input_tensor))内。
  • keep_dims:如果为true,则保留长度为1的缩小尺寸。
  • name:操作的名称(可选)。
  • reduction_indices:axis的废弃的名称。

返回:

该函数返回减少的张量,相当于np.sum

功能:

此函数计算一个张量的各个维度上元素的总和。

说明:

函数中的input_tensor是按照axis中已经给定的维度来减少的;除非 keep_dims 是true,否则张量的秩将在axis的每个条目中减少1;如果keep_dims为true,则减小的维度将保留为长度1。 如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量。

举例:

x = tf.constant([[1, 1, 1], [1, 1, 1]])
tf.reduce_sum(x) # 6
tf.reduce_sum(x, 0) # [2, 2, 2]
tf.reduce_sum(x, 1) # [3, 3]
tf.reduce_sum(x, 1, keep_dims=True) # [[3], [3]]
tf.reduce_sum(x, [0, 1]) # 6

2.reduce_min

reduce_min(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

参数:

  • input_tensor:减少的张量。应该有数字类型。
  • axis:要减小的尺寸。如果为None(默认),则缩小所有维度。必须在[-rank(input_tensor), rank(input_tensor))范围内。
  • keep_dims:如果为true,则保留长度为1的缩小维度。
  • name:操作的名称(可选)。
  • reduction_indices:axis的废弃的名称。

返回:

该函数返回减少的张量,相当于np.min

功能:

tf.reduce_min函数用来计算一个张量的各个维度上元素的最小值。 

说明:

同样按照axis给定的维度减少input_tensor。除非 keep_dims 是true,否则张量的秩将在axis的每个条目中减少1。如果keep_dims为true,则减小的维度将保留为长度1。 如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量。

3.reduce_max

reduce_max(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

参数:

  • input_tensor:要减少的张量。应该有数字类型。
  • axis:要减小的尺寸。如果为 None(默认),则减少所有维度。必须在[-rank(input_tensor), rank(input_tensor))范围内。
  • keep_dims:如果为true,则保留长度为1的减少维度。
  • name:操作的名称(可选)。
  • reduction_indices:axis的废弃的名称。

返回:

该函数返回减少的张量,相当于np.max。

功能:

计算一个张量的各个维度上元素的最大值。 

说明:

按照axis给定的维度减少input_tensor。除非 keep_dims 是true,否则张量的秩将在axis的每个条目中减少1。如果keep_dims为true,则减小的维度将保留为长度1。如果axis没有条目,则减少所有维度,并返回具有单个元素的张量。

4.reduce_mean

reduce_mean

5.reduce_all

reduce_all(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

参数:

  • input_tensor:要减少的张量。应该有数字类型。
  • axis:要减小的尺寸。如果为None(默认),则减少所有维度。必须在[-rank(input_tensor), rank(input_tensor))范围内。
  • keep_dims:如果为true,则保留长度为1的缩小尺寸。
  • name:操作的名称(可选)。
  • reduction_indices:axis的不支持使用的名称。

返回:

该函数返回减少的张量,相当于np.mean

功能:

计算张量的各个维度上的元素的平均值。

说明:

axis是tf.reduce_mean函数中的参数,按照函数中axis给定的维度减少input_tensor。除非keep_dims是true,否则张量的秩将在axis的每个条目中减少1。如果keep_dims为true,则缩小的维度将保留为1。 如果axis没有条目,则减少所有维度,并返回具有单个元素的张量。

举例:

x = tf.constant([[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.]

6.reduce_any

reduce_any(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

参数:

  • input_tensor:要减少的布尔张量。
  • axis:要减小的尺寸。如果为None(默认),则减少所有维度。必须在范围[-rank(input_tensor), rank(input_tensor))内。
  • keep_dims:如果为true,则保留长度为1的缩小维度。
  • name:操作的名称(可选)。
  • reduction_indices:axis的已经弃用的名称。

返回:

减少张量,相当于np.any

功能:

在张量的维度上计算元素的 "逻辑或"。 

说明:

按照axis给定的维度减少input_tensor。除非 keep_dims 是 true,否则张量的秩将在axis的每个条目中减少1。如果keep_dims为true,则缩小的维度将保留为1。如果axis没有条目,则会减少所有维度,并返回具有单个元素的张量。

举例:

x = tf.constant([[True, True], [False, False]])
tf.reduce_any(x) # True
tf.reduce_any(x, 0) # [True, True]
tf.reduce_any(x, 1) # [True, False]

7.reduce_logsumexp

reduce_logsumexp(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

参数:

  • input_tensor:张量减少。应该有数字类型。
  • axis:要减小的维度。如果为None(默认),则减少所有维度。必须在[-rank(input_tensor), rank(input_tensor))范围内。
  • keep_dims:如果为true,则保留长度为1的减少尺寸。
  • name:操作的名称(可选)。
  • reduction_indices:axis的弃用名称。

返回:

减少的张量。

功能:

计算log(sum(exp(张量的各维数的元素)))。 

说明:

按照给定的axis上的维度减少input_tensor。除非keep_dims是true,否则张量的秩在axis上的每一项都减少1。如果keep_dims为 true,则减少的尺寸将保留为1。如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量。这个函数在数值上比 log(sum(exp(input)))更稳定。它避免了大量输入的 exp 引起的溢出和小输入日志带来的下溢。

举例:

x = tf.constant([[0., 0., 0.], [0., 0., 0.]])
tf.reduce_logsumexp(x) # log(6)
tf.reduce_logsumexp(x, 0) # [log(2), log(2), log(2)]
tf.reduce_logsumexp(x, 1) # [log(3), log(3)]
tf.reduce_logsumexp(x, 1, keep_dims=True) # [[log(3)], [log(3)]]
tf.reduce_logsumexp(x, [0, 1]) # log(6)

8.reduce_prod

reduce_prod(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

参数:

  • input_tensor:要减少的张量。应该有数字类型。
  • axis:要减小的尺寸。如果为None(默认),则将缩小所有尺寸。必须在[-rank(input_tensor), rank(input_tensor))范围内。
  • keep_dims:如果为true,则保留长度为1的缩小维度。
  • name:操作的名称(可选)。
  • reduction_indices:axis的废弃的名称。

返回:

结果返回减少的张量,相当于np.prod

功能:

此函数计算一个张量的各个维度上元素的乘积。 

说明:

函数中的input_tensor是按照axis中已经给定的维度来减少的;除非 keep_dims 是true,否则张量的秩将在axis的每个条目中减少1;如果keep_dims为true,则减小的维度将保留为长度1。 如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量。

到此这篇关于Tensorflow中的降维函数tf.reduce_*使用总结的文章就介绍到这了,更多相关Tensorflow 降维函数tf.reduce_*内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
如何运行Python程序的方法
Apr 21 Python
Python实现学生成绩管理系统
Apr 05 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
python使用装饰器作日志处理的方法
Jul 11 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
pytorch 查看cuda 版本方式
Jun 23 Python
浅析python 字典嵌套
Sep 29 Python
python - asyncio异步编程
Apr 06 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 Python
Python yield生成器和return对比代码实例
Apr 20 #Python
jupyter notebook tensorflow打印device信息实例
Apr 20 #Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 #Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 #Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 #Python
python argparse模块通过后台传递参数实例
Apr 20 #Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 #Python
You might like
Smarty Foreach 使用说明
2010/03/23 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
投标单位介绍信
2014/01/09 职场文书
学生出入校管理制度
2014/01/16 职场文书
党员查摆剖析材料
2014/10/10 职场文书
教师调动申请报告
2015/05/18 职场文书
卡特教练观后感
2015/06/08 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis