fix DFLOptimizer
This commit is contained in:
+2
-6
@@ -448,18 +448,14 @@ NLayerDiscriminator = nnlib.NLayerDiscriminator
|
|||||||
grads = self.get_gradients(loss, params)
|
grads = self.get_gradients(loss, params)
|
||||||
self.updates = [K.update_add(self.iterations, 1)]
|
self.updates = [K.update_add(self.iterations, 1)]
|
||||||
|
|
||||||
lr = self.lr
|
lr_t = self.lr * ( ( K.cast(self.iterations, K.floatx()) ) % 100 + 1 ) / 100.0
|
||||||
t = ( K.cast(self.iterations, K.floatx()) ) % 1000 + 1
|
|
||||||
lr_t = lr * (K.sqrt(1. - K.pow(self.beta_2, t)) /
|
|
||||||
(1. - K.pow(self.beta_1, t)))
|
|
||||||
|
|
||||||
self.weights = []
|
self.weights = []
|
||||||
for p, g in zip(params, grads):
|
for p, g in zip(params, grads):
|
||||||
|
|
||||||
m_t = (1. - self.beta_1) * g
|
m_t = (1. - self.beta_1) * g
|
||||||
v_t = (1. - self.beta_2) * K.square(g)
|
v_t = (1. - self.beta_2) * K.square(g)
|
||||||
p_t = p - lr_t * m_t / (K.sqrt(v_t) + K.epsilon() )
|
new_p = p - lr_t * m_t / (K.sqrt(v_t) + K.epsilon() )
|
||||||
new_p = p_t
|
|
||||||
|
|
||||||
# Apply constraints.
|
# Apply constraints.
|
||||||
if getattr(p, 'constraint', None) is not None:
|
if getattr(p, 'constraint', None) is not None:
|
||||||
|
|||||||
Reference in New Issue
Block a user