С прошлой статьи я внёс несколько изменений:
1. Планировщик был сломан и не изменял скорость. Починил.
2. Остаточное соединение через умножение.
3. WindowedDense для выходной проекции.
4. Добавил clipnorm 1, cutoff_rate 0.4
Как обычно это всё добавляет стабильности и 1% точности.
WindowedDense по неизвестной мне причине добавляет SMR стабильность.
class SMR(layers.Layer):
def __init__(self, units):
super().__init__()
self.state_size = units
self.s_l = layers.Dense(units, use_bias=False)
def get_in_proj(self):
return WindowedDense(self.state_size, 16)
def call(self, i, states):
s = states[0]
s = self.s_l(s)
o = i * (s + 0.1)
return o, [o]