将一维张量的元素除以相应的索引

Divide elements of 1-D tensor by the corrispondent index

我在 python 2.7.

中使用 Tensorflow

我有一个像这样的二进制 1-D 张量

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

我想计算张量的每个元素与相应索引的比率之和。

例如,我需要计算:

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

是否有 Tensorflow 函数可以做到这一点?

您可以使用 tf.range 和 / 运算符,例如

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

注意:a和r必须是同一类型

您可以使用 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       ])