【发布时间】:2017-05-13 14:29:47
【问题描述】:
我想稀疏卷积核,所以我需要在训练过程中将核中的一些值设置为零值。张量流中是否有一些api可以帮助我实现我的想法,将张量中的一些值设置为零?
【问题讨论】:
-
例如,如何在张量中找到小于0.0001的值,然后设置为0?
标签: tensorflow
我想稀疏卷积核,所以我需要在训练过程中将核中的一些值设置为零值。张量流中是否有一些api可以帮助我实现我的想法,将张量中的一些值设置为零?
【问题讨论】:
标签: tensorflow
您可以使用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)
tf.relu_layer() 是你要找的,它本身就是用
调用 tf.nn.relu()张量 * 权重 + 偏差
所以你可以打电话
tf.nn.relu_layer(tensor, 1.0, -your_threshold)
【讨论】: