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