def get_gradients(self, loss, params): grads = K.gradients(loss, params) if hasattr(self, 'clipnorm') and self.clipnorm > 0: norm = K.sqrt(sum([K.sum(K.square(g)) for g in grads])) grads = [clip_norm(g, self.clipnorm, norm) for g in grads] if hasattr(self, 'clipvalue') and self.clipvalue > 0: grads = [K.clip(g, -self.clipvalue, self.clipvalue) for g in grads] return grads
def mean_squared_logarithmic_error(y_true, y_pred): first_log = K.log(K.clip(y_pred, K.epsilon(), np.inf) + 1.) second_log = K.log(K.clip(y_true, K.epsilon(), np.inf) + 1.) return K.mean(K.square(first_log - second_log), axis=-1)
def mean_absolute_percentage_error(y_true, y_pred): diff = K.abs( (y_true - y_pred) / K.clip(K.abs(y_true), K.epsilon(), np.inf)) return 100. * K.mean(diff, axis=-1)
def mean_absolute_percentage_error(y_true, y_pred): diff = K.abs((y_true - y_pred) / K.clip(K.abs(y_true), K.epsilon(), np.inf)) return 100. * K.mean(diff, axis=-1)
def __call__(self, p): norms = K.sqrt(K.sum(K.square(p), axis=0)) desired = K.clip(norms, 0, self.m) p = p * (desired / (1e-7 + norms)) return p