tensorflow中有很多在维度上的操作,本例以常用的tf.reduce_sum进行说明。官方给的api
1 2 3 4 5 6 7 | reduce_sum( input_tensor, axis = None , keep_dims = False , name = None , reduction_indices = None ) |
input_tensor:表示输入
axis:表示在那个维度进行sum操作。
keep_dims:表示是否保留原始数据的维度,False相当于执行完后原始数据就会少一个维度。
reduction_indices:为了跟旧版本的兼容,现在已经不使用了。
官方的例子:
1 2 3 4 5 6 7 | # '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 |
自己做的例子:
?
1 2 3 4 5 6 7 8 | 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: yy = sess.run(y,feed_dict = {x_p:x}) print (yy) |
y
=
tf.reduce_sum(x_p,
0) 输出结果:
[[ 8 10 12]
[14 16 18]]
y
=
tf.reduce_sum(x_p,1) 输出为:
[[ 5 7 9]
[17 19 21]]
y
=
tf.reduce_sum(x_p,2) 输出为:
[[ 6 15]
[24 33]]