2017-04-09 61 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必须是同一类型的