【问题标题】:How to convert array of Integers to binary encoding in TensorFlow or Numpy?如何在 TensorFlow 或 Numpy 中将整数数组转换为二进制编码?
【发布时间】:2018-03-08 14:19:02
【问题描述】:

我有一个数字输入,范围为[0, 15],我想将其作为 4 位二进制代码提供给我的网络。例如,输入[0,1,4,7] 应变为[[0,0,0,0],[0,0,0,1],[0,1,0,0],[0,1,1,1]]

tf.one_hot 操作很接近,但不是我想要的。是否有任何优雅的方式(使用 Numpy 或 TensorFlow)将我的输入转换为其二进制编码,以便将其输入我的网络?

我最好的解决方案是对每个值使用np.binary_repr,并将其从string 转换为integers 的数组,但我觉得这不是一个好的解决方案(转换两次,首先转换为字符串,然后到数组中)。

【问题讨论】:

    标签: python-3.x numpy tensorflow


    【解决方案1】:

    类似这样的:

    np.unpackbits(np.array([[0,1,4,7]],np.uint8)).reshape(-1,4)[1::2,:]
    

    我确信它可以被细化,但至少它是矢量化的

    或者这可能更有意义:

    np.unpackbits(np.array([[0,1,4,7]],np.uint8)).reshape(-1,8)[:,4:]
    

    【讨论】:

    • 第二个选项看起来更干净。干得好
    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 2017-04-25
    • 2019-03-29
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2016-07-08
    相关资源
    最近更新 更多