tensorflow-----张量的归约

张量的归约是常见的张量降维方法,通常归约函数都有一个维度作为参数,沿着该维度来执行指定的操作。如果axis为None,那么将归约的张量降维到一个标。

常见的归约函数:
(1)tf.reduce_sum(input_tensor, axis=None, keepdims=False, name=None)
沿着维度axis计算该维度所有元素的和。如果keepdims=True,那么维度被保留。如果axis没有指定,归约为标量。

在这里插入图片描述

import tensorflow as tf

x = tf.constant([[1,1,1], [1,1,1]]#shape=(2,3)
a = tf.reduce_sum(x)#没有指定维度,归约为标量,a = 6

b = tf.reduce_sum(x,axis=0)#沿着维度0进行归约
#b = [2,2,2]#shape = (3)

c = tf.reduce_sum(x, axis=1)#沿着维度1进行归约
#c = [3,3]

d = tf.reduce_sum(x, axis=1, keepdims=True)#沿着维度1进行归约,保留该维度,长度为1
#d = [[3], [3]]
#d.shape = (2,1)。由x.shape=(2,3)变为d.shape=(2,1)
e = tf.reduce_sum(x, axis=[0,1])#先沿着维度0进行归约求和,然后再沿着维度1进行归约求和
'''
[[1,1,1],
 [1,1,1]]  ==>  [2,2,2]  ==>  6
'''

(2)tf.reduce_min(input_tensor, axis=None, keepdims=False)
取维度axis上所有元素中的最小元素。
(3)tf.reduce_max(input_tensor, axis=None, keepdims=False)
取维度axis上所有元素中的最大元素。
(4)tf.reduce_prod(input_tensor, axis=None, keepdims=False)
计算维度axis上所有元素的乘积。
(5)tf.reduce_mean(input_tensor, axis=None, keepdims=False)
计算维度axis上所有元素的平均值。
(6)tf.reduce_all(input_tensor, axis=None, keepdims=False)
计算维度axis上所有元素的“逻辑与运算”。

import tensorflow as tf

x = tf.constant([[True, True], [False, False]]

a = tf.reduce_all(x) #[False]
b = tf.reduce_all(x, axis=0) #[False, False]
c = tf.reduce_all(x, axis=1) #[True, False]

(7)(6)tf.reduce_any(input_tensor, axis=None, keepdims=False)
计算维度axis上所有元素的“逻辑或运算”。

import tensorflow as tf

x = tf.constant([[True, True], [False, False]]

a = tf.reduce_any(x) #[True]
b = tf.reduce_all(x, axis=0) #[True, True]
c = tf.reduce_all(x, axis=1) #[True, False]

(8)tf.reduce_join(input_tensor, axis=None, keepdims=False)
沿着给定的维度axis,对字符串进行连接操作

import tensorflow as tf

x = tf.constant([['a', 'b'], ['c', 'd']]

a = tf.reduce_join(x) #['abcd']
b = tf.reduce_all(x, axis=0) #['ac', 'bd']
c = tf.reduce_all(x, axis=1) #['ab', 'cd']

(9)tf.count_nonzero(input_tensor, axis=None, keepdims=False)
计算维度axis上所有非零元素的个数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值