在张量流中将二进制转换为int

时间:2017-02-10 01:13:36

标签: tensorflow

我希望将张量的二进制数,例如[0,1,0,1,1]转换为tensorflow中的整数。就我而言,张量非常大,长度约为80个元素。有没有办法有效地做到这一点?

1 个答案:

答案 0 :(得分:3)

这几乎肯定会导致长度为80的二进制张量溢出,但基本策略是使用具有2的幂的Tensor进行向量化乘法:

import tensorflow as tf

binary_string = tf.constant([1, 0, 0, 1, 1])

result = tf.reduce_sum(
    tf.cast(tf.reverse(tensor=binary_string, axis=[0]), dtype=tf.int64)
    * 2 ** tf.range(tf.cast(tf.size(binary_string), dtype=tf.int64)))

with tf.Session():
    print(result.eval())

打印:

19