2017-04-09 62 views
1

我使用的是Python 2.7中的Tensorflow。按照相應索引劃分一維張量的元素

我有一個二進制1-d張量這樣的:

a = [ 1 , 0, 1, 0, 1] 

欲由corrispondent指數計算張量的每個元素的比例的總和。

例如,我需要計算:

[ 1/1 + 0/2 + 1/3 + 0/4 + 0/5 ] 

是否有Tensorflow函數,它是什麼?

回答

1

您可以使用tf.shape或Dzjkb的回答get_shape得到張量大小。

import tensorflow as tf 
sess = tf.Session() 
x = tf.constant([1,0,1,0,1]) 
y = tf.range(1, tf.shape(x)[0] + 1) 
#y = tf.range(1, x.get_shape()[0].value + 1) 
z = x/y 
sess.run(z) 

輸出:

array([ 1.  , 0.  , 0.33333333, 0.  , 0.2  ]) 
1

您可以使用tf.range和/運營商,像

# a is your 1-D binary tensor 
r = tf.range(1, a.get_shape()[0].value) 
result = a/r 

注:一個和r必須是同一類型的