0
我想在Keras中製作一個自定義正規化器,我需要能夠捲動係數數組。在Keras中使用numpy卷
我知道這可能是不可能的,但任何可以複製此滾動功能的機制都將非常感激。
```
def __call__(self, x):
regularization = 0.
# Add components if they are given
if self.l1:
# \lambda ||x||
regularization += self.l1 * K.sum(K.abs(x))
if self.fuse:
# \lambda \sum{ |x - x_+1| }
regularization += self.fuse * K.sum(K.abs(x - np.roll(x, 1)))
if self.abs_fuse:
# \lambda \sum{ ||x| - |x_+1|| }
regularization += self.abs_fuse * K.sum(K.abs(K.abs(x) - K.abs(np.roll(x, 1))))
```
'x'的維度是什麼?如果'x'是一個矩陣,那麼它可能有點奇怪。在權重矩陣上調用'np.roll'將首先使矩陣變平,線性移位元素,最後將其重構爲矩陣。這種行爲究竟是你想要的,還是它'np.roll(x,1,axis = 1)'? –
x的維度總是(m,1)。我知道從測試它的一個玩具的例子與numpy那個roll是我要找的行爲 – SARose
@ Yu-Yang編輯:'np.roll(x,1,axis = 1)'給出了與'np .roll(x,1)'在這個例子中,'axis = 1'更明確。 – SARose