2017-05-25 9 views
0

関数から7つの値を返し、後でこれらの値を出力します。 しかし、私がそれらをプリントアウトすると、私は常に最初の値の7つのコピーを取得します。Tensorflow/Python:最初の要素のコピーを返すファンクションタプル

私は何が間違っているのか分かりません。

コードでは、テンソル(配列)のn要素を比較し、特定のしきい値を下回る要素の割合をチェックしています。

def accuracy(): 
    n=7850 
    m = 100.0 
    difference = tf.abs(tf.subtract(prediction,(labels_tf))) 
    one = tf.reduce_sum(tf.cast(tf.less(difference,[1]),dtype=tf.int32)) 
    one = tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 

    two = tf.reduce_sum(tf.cast(tf.less(difference,[2]),dtype=tf.int32)) 
    two = tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 

    three =tf.reduce_sum(tf.cast(tf.less(difference,[3]),dtype=tf.int32)) 
    three =tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 

    four= tf.reduce_sum(tf.cast(tf.less(difference,[4]),dtype=tf.int32)) 
    four= tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 

    five= tf.reduce_sum(tf.cast(tf.less(difference,[5]),dtype=tf.int32)) 
    five= tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 

    ten = tf.reduce_sum(tf.cast(tf.less(difference,[10]),dtype=tf.int32)) 
    ten = tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 

    fifteen =tf.reduce_sum(tf.cast(tf.less(difference,[15]),dtype=tf.int32)) 
    fifteen = tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 



    return (one, two, three, four, five, ten, fifteen) 

a1,a2,a3,a4,a5,a10,a15 = accuracy() 

答えて

0

あなたはすなわち

fifteen = tf.multiply(tf.divide(tf.cast(one,dtype=tf.float32),n),m) 
             ^^ 
+0

uggh二行目の操作の各セットにoneを渡しています。私はこれのための弾丸に値する。どうも! – Simmeman

関連する問題