I began to learn tensorflow.import tensorflow as tf, firstly of course. When encountered with tf.reduce_sum(array) or tf.reduce_mean(array), I felt a little doubt about which is the exact dimension to be reduced. Directly digging the answer in the unfamiliar tensorflow world(for me), somehow, made me confused.
the answer
Think about this. When create a array applying numpy, we use a = numpy.random.rand(3,4,5). That means the length of the first dimension is 3, the length of the second dimension is 4 and 5 for the third dimension.
if applying sess.run(tf.reduce_sum(a,0)), the product’s shape will be (4,5), the dimension length of which is 3 is reduced.
appendix
import tensorflow as tf
import numpy as np
a = np.random.rand(3,4,5)
a
Out[138]:
array([[[ 0.67386161, 0.25891236, 0.15750355, 0.99356577, 0.62401749],
[ 0.44104193, 0.14171052, 0.92457023, 0.3475105 , 0.46261946],
[ 0.74483249, 0.22724867, 0.61261517, 0.20140201, 0.11718528],
[ 0.53023319, 0.65372313, 0.34679634, 0.7626164 , 0.47658279]],
[[ 0.22209199, 0.57104615, 0.94053357, 0.10663142, 0.96630193],
[ 0.87147539, 0.29464845, 0.41552753, 0.05044025, 0.92632825],
[ 0.78404338, 0.42560083, 0.91265402, 0.37281405, 0.25450812],
[ 0.00306304, 0.74638202, 0.19689413, 0.65906257, 0.46627029]],
[[ 0.46042323, 0.48506186, 0.73388123, 0.50179246, 0.3163692 ],
[ 0.33435115, 0.01610695, 0.98188888, 0.77100164, 0.7795511 ],
[ 0.24383665, 0.28206927, 0.09408851, 0.90500411, 0.69718288],
[ 0.40164087, 0.66995977, 0.61219998, 0.91530942, 0.00388272]]])
sess = tf.Session()
sess.run(tf.reduce_mean(a,0))
Out[140]:
array([[ 0.45212561, 0.43834012, 0.61063945, 0.53399655, 0.63556287],
[ 0.54895615, 0.15082197, 0.77399555, 0.3896508 , 0.72283294],
[ 0.59090417, 0.31163959, 0.5397859 , 0.49307339, 0.35629209],
[ 0.3116457 , 0.69002164, 0.38529681, 0.77899613, 0.3155786 ]])
sess.run(tf.reduce_mean(a,0)).shape
Out[141]: (4, 5)
sess.run(tf.reduce_mean(a,1)).shape
Out[142]: (3, 5)
In[...]: import tensorflow as tf
In[...]: import numpy as np
In[...]: a = np.random.rand(3,4,5)
In[...]: a
Out[138]:
array([[[ 0.67386161, 0.25891236, 0.15750355, 0.99356577, 0.62401749],
[ 0.44104193, 0.14171052, 0.92457023, 0.3475105 , 0.46261946],
[ 0.74483249, 0.22724867, 0.61261517, 0.20140201, 0.11718528],
[ 0.53023319, 0.65372313, 0.34679634, 0.7626164 , 0.47658279]],
[[ 0.22209199, 0.57104615, 0.94053357, 0.10663142, 0.96630193],
[ 0.87147539, 0.29464845, 0.41552753, 0.05044025, 0.92632825],
[ 0.78404338, 0.42560083, 0.91265402, 0.37281405, 0.25450812],
[ 0.00306304, 0.74638202, 0.19689413, 0.65906257, 0.46627029]],
[[ 0.46042323, 0.48506186, 0.73388123, 0.50179246, 0.3163692 ],
[ 0.33435115, 0.01610695, 0.98188888, 0.77100164, 0.7795511 ],
[ 0.24383665, 0.28206927, 0.09408851, 0.90500411, 0.69718288],
[ 0.40164087, 0.66995977, 0.61219998, 0.91530942, 0.00388272]]])
In[...]: sess = tf.Session()
In[...]: sess.run(tf.reduce_mean(a,0))
Out[140]:
array([[ 0.45212561, 0.43834012, 0.61063945, 0.53399655, 0.63556287],
[ 0.54895615, 0.15082197, 0.77399555, 0.3896508 , 0.72283294],
[ 0.59090417, 0.31163959, 0.5397859 , 0.49307339, 0.35629209],
[ 0.3116457 , 0.69002164, 0.38529681, 0.77899613, 0.3155786 ]])
In[...]: sess.run(tf.reduce_mean(a,0)).shape
Out[141]: (4, 5)
In[...]: sess.run(tf.reduce_mean(a,1)).shape
Out[142]: (3, 5)
TensorFlow中reduce操作解析
1万+

被折叠的 条评论
为什么被折叠?



