Skip to content

Instantly share code, notes, and snippets.

@ravnoor
Created September 19, 2017 17:07
Show Gist options
  • Save ravnoor/7ebc16ec2e297e2b9cbcad1555552631 to your computer and use it in GitHub Desktop.
Save ravnoor/7ebc16ec2e297e2b9cbcad1555552631 to your computer and use it in GitHub Desktop.
Keras loss functions
# https://github.com/Rachnog/Deep-Trading/blob/master/volatility/volatility.py
epsilon = 1.0e-9
def qlike_loss(y_true, y_pred):
y_pred = K.clip(y_pred, epsilon, 1.0 - epsilon)
loss = K.log(y_pred) + y_true / y_pred
return K.mean(loss, axis=-1)
def mse_log(y_true, y_pred):
y_pred = K.clip(y_pred, epsilon, 1.0 - epsilon)
loss = K.square(K.log(y_true) - K.log(y_pred))
return K.mean(loss, axis=-1)
def mse_sd(y_true, y_pred):
y_pred = K.clip(y_pred, epsilon, 1.0 - epsilon)
loss = K.square(y_true - K.sqrt(y_pred))
return K.mean(loss, axis=-1)
def hmse(y_true, y_pred):
y_pred = K.clip(y_pred, epsilon, 1.0 - epsilon)
loss = K.square(y_true / y_pred - 1.)
return K.mean(loss, axis=-1)
def stock_loss(y_true, y_pred):
alpha = 100.
loss = K.switch(K.less(y_true * y_pred, 0), \
alpha*y_pred**2 - K.sign(y_true)*y_pred + K.abs(y_true), \
K.abs(y_true - y_pred)
)
return K.mean(loss, axis=-1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment