【问题标题】:How can I extract nonzero values from tensor in keras如何从 keras 中的张量中提取非零值
【发布时间】:2020-08-14 20:11:30
【问题描述】:

我正在尝试在 Python 中操作一些数据,在 Tensorflow.keras 的自定义损失函数中

考虑以下示例:

b = tf.constant([[0, 3, 1], [0, 5, 2]])

我想擦除零列,或提取非零列,这样最终结果将是张量

[[3,1], [5,2]]

我尝试使用 tf.where,使用蒙版,但它不保持形状,它只返回一个具有非零值的一维张量。 此外,我需要它来处理任意数量的行,唯一固定的是列数。

【问题讨论】:

    标签: python-3.x tensorflow keras tensor loss-function


    【解决方案1】:

    这会选择总和 > 0 的所有列:

    tf.transpose(tf.gather_nd(tf.transpose(b), tf.where(tf.reduce_sum(b, axis=0)>0)))
    

    【讨论】:

    • 非常感谢,它似乎在损失函数中也能正常工作!
    猜你喜欢
    • 2020-02-23
    • 1970-01-01
    • 2017-06-30
    • 2021-07-17
    • 2017-01-06
    • 2020-02-03
    • 1970-01-01
    • 2017-06-16
    • 2018-11-08
    相关资源
    最近更新 更多