【问题标题】:How to set some values of tensor as zero value in tensorflow?如何在张量流中将张量的一些值设置为零值?
【发布时间】:2017-05-13 14:29:47
【问题描述】:

我想稀疏卷积核,所以我需要在训练过程中将核中的一些值设置为零值。张量流中是否有一些api可以帮助我实现我的想法,将张量中的一些值设置为零?

【问题讨论】:

  • 例如,如何在张量中找到小于0.0001的值,然后设置为0?

标签: tensorflow


【解决方案1】:

您可以使用tf.boolean_mask(original_tensor, mask) 仅保留您想要的值(您将删除其他值,而不是将它们设置为 0)。

要保持初始形状并在某些地方仅包含零,您可以执行以下操作:

new_tensor = tf.multiply(original_tensor, tf.cast(mask, original_tensor.type()))

对于您的示例,您可以使用以下方式构建掩码:

mask = tf.less(original_tensor, 0.0001 * tf.ones_like(original_tensor))

【讨论】:

  • 谢谢,我已经找过了。现在我将其应用于图像输入以阈值某些像素值。 threshold_mask = tf.greater(image_op, 60)image_op = image_op * tf.cast(threshold_mask, dtype=tf.uint8)
  • 链接已损坏。当前链接为:tensorflow.org/api_docs/python/tf/boolean_mask
【解决方案2】:

tf.relu_layer() 是你要找的,它本身就是用

调用 tf.nn.relu()

张量 * 权重 + 偏差

所以你可以打电话

tf.nn.relu_layer(tensor, 1.0, -your_threshold)

https://www.tensorflow.org/api_docs/python/tf/nn/relu_layer

【讨论】:

    猜你喜欢
    • 2018-02-13
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多