Tensorflow:如何将整数张量转换为相应的二进制张量。

3

我希望将一个整型张量a_dec=tf.constant([2,7], dtype=tf.int32)转换为一个二进制的二维张量,例如:a_bin=tf.constant([[0,1,0],[1,1,1]], dtype=tf.int32)

有没有一种有效的方法来完成这个转换?

2个回答

2

如果您知道向量的大小n,那么对于以下问题该怎么办:

a_bin = tf.mod(tf.bitwise.right_shift(tf.expand_dims(a_dec,1), tf.range(n)), 2)

谢谢您的帮助。我正在使用TF版本1.4,它还不支持tf.bitwise.right_shift()。但这是个好主意。 - Jay
它可从TF 1.5版本开始使用,当前版本为TF 1.8。也许考虑升级。 - guik

0
我尝试了guik的解决方案,但在转换1和4时失败了,就像这样:
a = tf.constant([1,7], dtype=tf.int32)

b = tf.mod(tf.bitwise.right_shift(tf.expand_dims(a,1), tf.range(3)), 2)

实际上,这里的位是反转的,因此:

b = tf.reverse(b, axis = [-1])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接