我想创建一个自定义损失函数,它有一个权重项,根据我所处的纪元更新。
例如:假设我有一个损失函数,它具有beta
权值,其中β在前20个epoch中增加…
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损失函数?
查看他们的文档,他们提到可以使用ano/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.占位符我认为对于模型创建,你可以使用keras但是你必须使用sess。run()
来运行计算图引用:https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html using-keras-models-with-tensorflow