我想创建一个自定义损失函数,其中的权重项根据我所处的时代进行更新。
例如:
假设我有一个损失函数beta
权重,其中 beta 在前 20 个时期内增加......
def custom_loss(x, x_pred):
loss1 = objectives.binary_crossentropy(x, x_pred)
loss2 = objectives.mse(x, x_pred)
return (beta*current_epoch/20) * loss1 + loss2
我如何将这样的东西实现到 keras 损失函数中?
查看他们的文档,他们提到您可以使用 theano/Tf 符号函数为每个数据点返回一个标量。
所以你可以做这样的事情
loss = tf.contrib.losses.softmax_cross_entropy(x, x_pred) *
(beta * current_epoch / 20 ) +
tf.contrib.losses.mean_squared_error
您必须将 x 和 x_pred 作为 x 传递,将 x_pred 作为 tf.placeholders 传递
我认为对于模型创建,您可以使用 keras,但您必须再次使用 sess.run() 运行计算图
参考:https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#using-keras-models-with-tensorflow https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html#using-keras-models-with-tensorflow
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)