2017-05-21 1 views
1

Sagen, ich habe ein Tensor wie folgt aus:tensorflow jede Zeile durch eine andere Summe dividiert

T = [[1,2,3,4], 
    [5,6,7,8], 
    [9,10,11,12]]. 

Ich habe verwendet reduce_sum (T, 1) alle in einem anderen Tensor die Summen zu bekommen, aber ich kann nicht scheinen einen Weg zu finden, die Summen tatsächlich nach Zeilen zu teilen. Wie kann ich jede Zeile durch ihre Summe in Tensorflow aufteilen (d. H. Dividiere [1,2,3,4] mit 10, [5,6,7,8] mit 26 usw.)?

Antwort

3

Dies ist leicht zu erreichen, nur durch Ihre Matrix elementweise durch einen Vektor Teilung, die in jeder Dimension eine Summe darstellt:

import tensorflow as tf 
a = tf.constant([ 
    [1, 2, 3, 4], 
    [5, 6, 7, 8] 
], dtype=tf.float32) 

b = tf.reduce_sum(a, axis=1) 

c = a/tf.reshape(b, (-1, 1)) 
with tf.Session() as sess: 
    print sess.run(c) 
Verwandte Themen