如何在 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 个元素的张量。