如何在 Keras 中裁剪张量,每个子张量具有不同的裁剪值?
How to clip a tensor in Keras, with a different clipping value for each subtensor?
我有一个 4d 张量 W
(2d 卷积核)和一个 1d array/tensor H
指定每个过滤器的裁剪值。这意味着我有
len(H) == W.shape[-1]
我希望 W[:,:,:,i]
的所有元素都被剪裁在 -H[i]
和 H[i]
之间。
我看过keras.backend.clip,它说你可以指定最小值和最大值作为张量,但你不能指定轴。如果有人能告诉我如何实现这一目标,我将不胜感激。提前致谢。
把这个放在某个层里:
H = K.reshape(H, (1, 1, 1, -1))
topClip = K.minimum(H, W)
clipped = K.maximum(-H, topClip)
正如 Diego Palacios 评论的那样,尽管 clip
接受张量,但它只接受具有 1 个元素的张量。
我有一个 4d 张量 W
(2d 卷积核)和一个 1d array/tensor H
指定每个过滤器的裁剪值。这意味着我有
len(H) == W.shape[-1]
我希望 W[:,:,:,i]
的所有元素都被剪裁在 -H[i]
和 H[i]
之间。
我看过keras.backend.clip,它说你可以指定最小值和最大值作为张量,但你不能指定轴。如果有人能告诉我如何实现这一目标,我将不胜感激。提前致谢。
把这个放在某个层里:
H = K.reshape(H, (1, 1, 1, -1))
topClip = K.minimum(H, W)
clipped = K.maximum(-H, topClip)
正如 Diego Palacios 评论的那样,尽管 clip
接受张量,但它只接受具有 1 个元素的张量。