2017-02-10 91 views
1

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

+0

你希望得到什么样的整数? 160000位比64位整数要多一点。是否有某种配料正在进行? –

+0

@AllenLavoie对不起。总共是80位。 –

回答

1

这几乎肯定会导致与长度为80的二进制张量溢出,但基本的策略是做一个量化的乘用具有二的幂张量:

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 
相关问题