【问题标题】:Selectively Iterate over Tensor选择性地迭代张量
【发布时间】:2017-03-23 20:48:48
【问题描述】:

我目前正在使用 Keras 构建一个 CNN,需要定义一个自定义损失函数。我只想在损失中考虑我数据的特定部分,并根据某个参数值忽略其他部分。但是,我在迭代 Keras 损失函数所期望的张量对象时遇到了麻烦。

我有没有一种简单的方法来计算两个张量之间的均方误差,只查看张量中的选定值?

例如,在我的例子中,每个张量代表一个 2D 16x16 网格,每个单元格有 2 个参数 - 形状 (16, 16, 2)。我只想比较其中一个参数等于 1 的单元格。

【问题讨论】:

  • 对于每个批次中的每个样本,您是否事先知道(即当该批次传递到网络时)您应该忽略输出张量的哪些部分或要屏蔽哪些部分?
  • 是的,我可以从我的输入(形状相同)中知道我要忽略哪些单元格。

标签: python machine-learning tensorflow keras conv-neural-network


【解决方案1】:

一般的方法是使用二进制掩码。 Tensorflow 提供了几个布尔函数,例如tf.equaltf.not_equal。对于只选择等于某个值的输入,您可以使用tf.equal,然后将损失张量乘以得到的二进制掩码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多