热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

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

这篇文章主要介绍了Tensorflow中的降维函数tf.reduce_*使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在使用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_*内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本改进旨在提升运行选择器中名称换行的显示效果,以提高用户体验。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 本文详细介绍了如何在Windows环境下配置GPU支持,并使用Keras和TensorFlow实现YOLOv3模型进行图像目标检测。对于环境搭建的具体步骤,可参考外部链接提供的指南。 ... [详细]
  • 本文详细介绍了使用NumPy和TensorFlow实现的逻辑回归算法。通过具体代码示例,解释了数据加载、模型训练及分类预测的过程。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 本文详细介绍如何通过Anaconda 3.5.01快速安装TensorFlow,包括环境配置和具体步骤。 ... [详细]
  • 吴恩达推出TensorFlow实践课程,Python基础即可入门,四个月掌握核心技能
    量子位报道,deeplearning.ai最新发布了TensorFlow实践课程,适合希望使用TensorFlow开发AI应用的学习者。该课程涵盖机器学习模型构建、图像识别、自然语言处理及时间序列预测等多个方面。 ... [详细]
  • 本文详细介绍了非极大值抑制(Non-Maximum Suppression, NMS)算法的原理及其在目标检测中的应用,并提供了C++语言的具体实现代码。NMS算法通过筛选出高得分的检测框并移除重叠度高的其他检测框,有效提高了检测结果的准确性和可靠性。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
  • 本文详细介绍了 TensorFlow 的入门实践,特别是使用 MNIST 数据集进行数字识别的项目。文章首先解析了项目文件结构,并解释了各部分的作用,随后逐步讲解了如何通过 TensorFlow 实现基本的神经网络模型。 ... [详细]
  • 本文介绍了一个使用Keras框架构建的卷积神经网络(CNN)实例,主要利用了Keras提供的MNIST数据集以及相关的层,如Dense、Dropout、Activation等,构建了一个具有两层卷积和两层全连接层的CNN模型。 ... [详细]
  • TensorFlow 2.0 中的 Keras 数据归一化实践
    数据预处理是机器学习任务中的关键步骤,特别是在深度学习领域。通过将数据归一化至特定范围,可以在梯度下降过程中实现更快的收敛速度和更高的模型性能。本文探讨了如何使用 TensorFlow 2.0 和 Keras 进行有效的数据归一化。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
author-avatar
853530960_eafb59
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有