TensorFlow中tf.reduce_sum函数维度操作详解

拾柒
拾柒
发布时间:2026-10-13 | 3人浏览过
原创

本文详解TensorFlow中tf.reduce_sum函数的核心参数。重点解析axis指定求和维度及keep_dims控制输出形状的作用,对比官方示例与自定义多维数组案例,展示不同axis取值下的计算结果差异,帮助开发者准确掌握张量归约操作。

TensorFlow提供了丰富的沿维度进行计算的操作,本文以常用的tf.reduce_sum函数为例进行详细说明。以下是该函数的官方API定义。

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

input_tensor:指定需要进行求和操作的输入张量。

axis:指定执行求和操作的维度索引。

keep_dims:布尔值,用于控制是否保留原始数据的维度。若设置为False,求和操作完成后,结果张量将比输入张量少一个维度;若为True,则保留该维度,其值为1。

reduction_indices:此参数为兼容旧版本TensorFlow而保留,目前官方已推荐使用axis替代,建议在新代码中避免使用。

以下是官方文档提供的示例代码。

# 'x' is [[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

以下是基于官方示例编写的自定义测试案例。

import tensorflow as tf
import numpy as np
x = np.asarray([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
x_p = tf.placeholder(tf.int32,[2,2,3])
y = tf.reduce_sum(x_p,0) #修改这里
with tf.Session() as sess:
 y = sess.run(y,feed_dict={x_p:x})
 print y
axis= 0:[[ 8 10 12] [14 16 18]] 
1+7 2+8 3+7 …….. 
axis=1: [[ 5 7 9] [17 19 21]] 
1+4 2+5 3 +6 …. 
axis=2: [[ 6 15] [24 33]] 
1+2+3 4+5+6…..

以上关于TensorFlow中tf.reduce_sum函数在维度上操作的详解内容到此结束,希望能为读者提供有价值的参考。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表