tf.reduce_sum

tf.reduce_sum

https://github.com/tensorflow/docs/tree/r1.4/site/en/api_docs/api_docs/python/tf
site/en/api_docs/api_docs/python/tf/reduce_sum.md

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

Defined in tensorflow/python/ops/math_ops.py.
See the guide: Math > Reduction

Computes the sum of elements across dimensions of a tensor.
计算一个张量的各个维度上元素的总和。

压缩求和,用于降维。

Reduces input_tensor along the dimensions given in axis. Unless keep_dims is true, the rank of the tensor is reduced by 1 for each entry in axis. If keep_dims is true, the reduced dimensions are retained with length 1.
函数中的 input_tensor 是按照 axis 中已经给定的维度来减少的。除非 keep_dims 是 true,否则张量的秩将在 axis 的每个条目中减少1。如果 keep_dims 为true,则减小的维度将保留为长度 1。

If axis has no entries, all dimensions are reduced, and a tensor with a single element is returned.
如果 axis 没有条目,则缩小所有维度,并返回具有单个元素的张量。

reduction [rɪ'dʌkʃ(ə)n]:n. 减少,下降,缩小,还原反应

For example:

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

1. Args

  • input_tensor: The tensor to reduce. Should have numeric type.
  • axis: The dimensions to reduce. If None (the default), reduces all dimensions. Must be in the range [-rank(input_tensor), rank(input_tensor)). (如果为 None (默认),则缩小所有尺寸。)
  • keep_dims: If true, retains reduced dimensions with length 1.
  • name: A name for the operation (optional). (操作的名称 (可选)。)
  • reduction_indices: The old (deprecated) name for axis.

二维的 input_tensor 张量,0 表示按列求和,1 表示按行求和,[0, 1] 表示先按列求和再按行求和。

2. Returns

The reduced tensor.

3. numpy compatibility

Equivalent to np.sum.

deprecate ['deprɪkeɪt]:vt. 反对,抨击,轻视,声明不赞成
equivalent [ɪ'kwɪv(ə)l(ə)nt]:adj. (在价值、数量等方面) 相等的,等价的,等效的,等量的,同意义的 n. 对等的人 (或事物),当量

4. Example

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import absolute_import
from __future__ import print_function
from __future__ import division

import os
import sys
import numpy as np
import tensorflow as tf

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
current_directory = os.path.dirname(os.path.abspath(__file__))

print(16 * "++--")
print("current_directory:", current_directory)
print(16 * "++--")

t1 = tf.constant([[0, 1, 2], [3, 4, 5]], dtype=np.float32)

rs0 = tf.reduce_sum(t1)
rs1 = tf.reduce_sum(t1, 0)
rs2 = tf.reduce_sum(t1, 1)
rs3 = tf.reduce_sum(t1, 1, keep_dims=True)
rs4 = tf.reduce_sum(t1, [0, 1])

with tf.Session() as sess:
    input_t1 = sess.run(t1)
    print("input_t1.shape:", input_t1.shape)
    print("input_t1:\n", input_t1)
    print('\n')

    output0 = sess.run(rs0)
    print("output0.shape:", output0.shape)
    print("output0:\n", output0)
    print('\n')

    output1 = sess.run(rs1)
    print("output1.shape:", output1.shape)
    print("output1:\n", output1)
    print('\n')

    output2 = sess.run(rs2)
    print("output2.shape:", output2.shape)
    print("output2:\n", output2)
    print('\n')

    output3 = sess.run(rs3)
    print("output3.shape:", output3.shape)
    print("output3:\n", output3)
    print('\n')

    output4 = sess.run(rs4)
    print("output4.shape:", output4.shape)
    print("output4:\n", output4)
/usr/bin/python2.7 /home/strong/tensorflow_work/R2CNN_Faster-RCNN_Tensorflow/yongqiang.py
++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--
current_directory: /home/strong/tensorflow_work/R2CNN_Faster-RCNN_Tensorflow
++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--++--
2019-08-21 10:40:04.972994: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2019-08-21 10:40:05.041651: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:892] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-08-21 10:40:05.041890: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties: 
name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate(GHz): 1.7335
pciBusID: 0000:01:00.0
totalMemory: 7.92GiB freeMemory: 7.28GiB
2019-08-21 10:40:05.041901: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0, compute capability: 6.1)
input_t1.shape: (2, 3)
input_t1:
 [[0. 1. 2.]
 [3. 4. 5.]]


output0.shape: ()
output0:
 15.0


output1.shape: (3,)
output1:
 [3. 5. 7.]


output2.shape: (2,)
output2:
 [ 3. 12.]


output3.shape: (2, 1)
output3:
 [[ 3.]
 [12.]]


output4.shape: ()
output4:
 15.0

Process finished with exit code 0

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yongqiang Cheng

梦想不是浮躁,而是沉淀和积累。

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

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

打赏作者

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

抵扣说明:

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

余额充值