的功能numpy.mean
and tensorflow.reduce_mean
是相同的。他们做同样的事情。从文档来看,对于numpy http://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html and 张量流 https://www.tensorflow.org/api_docs/python/tf/reduce_mean,你可以看到。让我们看一个例子,
c = np.array([[3.,4], [5.,6], [6.,7]])
print(np.mean(c,1))
Mean = tf.reduce_mean(c,1)
with tf.Session() as sess:
result = sess.run(Mean)
print(result)
Output
[ 3.5 5.5 6.5]
[ 3.5 5.5 6.5]
在这里你可以看到,当axis
(numpy)或reduction_indices
(tensorflow) 为 1,它计算 (3,4) 和 (5,6) 和 (6,7) 的平均值,所以1
定义计算平均值的轴。当它为 0 时,将在 (3,5,6) 和 (4,6,7) 上计算平均值,依此类推。我希望你能明白。
那么它们之间有什么区别呢?
您可以在 python 上的任何位置计算 numpy 运算。但是为了进行张量流操作,必须在张量流内部完成Session
。您可以阅读更多相关内容here https://www.tensorflow.org/get_started/get_started。因此,当您需要对张量流图(或结构,如果您愿意的话)执行任何计算时,必须在张量流内完成Session
.
让我们看另一个例子。
npMean = np.mean(c)
print(npMean+1)
tfMean = tf.reduce_mean(c)
Add = tfMean + 1
with tf.Session() as sess:
result = sess.run(Add)
print(result)
我们可以通过以下方式增加平均值1
in numpy
正如您自然会做的那样,但是为了在张量流中执行此操作,您需要在Session
,不使用Session
你不能那样做。换句话说,当你计算时tfMean = tf.reduce_mean(c)
,那么tensorflow不会计算它。它只计算在Session
。但是 numpy 会立即计算,当你写np.mean()
.
我希望这是有道理的。