2017-10-07 8 views
0

は、私の知る限りtensorflow reduce_meanとnumpyの平均値を理解して同じ値を返しますが、例の下に別の値を返す必要があります。tensorflowが意味する

import numpy as np 
import tensorflow as tf 

t_1 = tf.constant([1,3,4,5]) 
t_2 = tf.constant([7,8,9,0]) 
list_t = [t_1, t_2] 
reduced_t_list = tf.reduce_mean(list_t) 
sess= tf.Session() 
print(sess.run(reduced_t_list)) 
print(np.mean([1,3,4,5,7,8,9,0])) 

output: 
4 
4.625 

どれ推測なぜですか? tf.constant docsから

答えて

1

np.mean([1, 2, 3])はデフォルトでfloatの配列にそれをキャストし、一方

If the argument dtype is not specified, then the type is inferred from the type of value. 

[1, 2, 3, 4]dtypeは、intあります。

Try tf.constant(np.arange(3.0))

+0

ありがとうございます。私はデータ型がなぜ重要であるのか把握していません。テンソルフローが4.625から4にラウンドすると思いますか? – user1700890

+1

ええ、整数除算(そして、複数の整数の平均を取って最初に整数を合計し、次にこれらの整数の総数を超えてダイビングする)は、通常、[階除算]を行います(http://python-history.blogspot.in/2010/08/ why-pythons-integer-division-floors.html)、デフォルトでは'27 // 10 == 2 'となり、' 2.7'は '3'に近いように見える。 –