[TensorFlow 2] [Keras] 自定义 loss 函数

前言

嘿,虽然Keras里面自带了很多loss函数,但是有时候面对定制化的需求,自带的函数还是不够用的,这个时候自定义的loss函数就派上了用场。本文先简要介绍一种自定义loss函数的方法,日后有时间再更新其他的(O(∩_∩)O)。

环境

  • TensorFlow 2.0 Beta

代码

话不多说,先上代码:

def custom_loss(y_true, y_pred):
	return tf.reduce_mean(tf.square(y_true-y_pred))

嘿,这不是我们的 MSE 嘛!当然,除了 MSE,你可以自定义任何类型的loss函数。函数写好后,就交给模型吧:

model.compile(loss=custom_loss)

那么,除了操纵y_truey_pred,我们还可不可以引入其他的数据来计算loss呢?Yes!

z = keras.layers.Dense(3197747)(inputs)

def custom_loss(y_true, y_pred):
	loss_1 = tf.reduce_mean(tf.sqrt(z))
	loss_2 = tf.reduce_mean(tf.square(y_true-y_pred))
	return loss_1 + loss_2

model.compile(loss=custom_loss)

嘿,这样就可以方便地算各种loss啦,例如KL散度等等。
除了使用Keras functional API来自定义loss函数,还有一些其他的方法,就先不介绍啦!

Reference

  1. Module: tf.keras.losses. (June 13, 2019). Retrieved from https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/losses
©️2020 CSDN 皮肤主题: 终极编程指南 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值