1

我在 python 2.7 中使用 Tensorflow。

我有一个像这样的二进制一维张量

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

我想通过对应索引计算张量的每个元素的比率之和。

例如,我需要计算:

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

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

4

2 回答 2

1

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

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

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

于 2017-04-09T13:05:34.040 回答
1

您可以使用tf.shapeor 作为 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       ])
于 2017-04-09T15:10:06.247 回答