我想创建一个自定义丢失函数,其重量项根据我所处的时代进行更新。
例如:
让我们说我有一个损失函数,其权重为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损失函数中实现这样的东西?
答案 0 :(得分:0)
查看他们的文档,他们提到您可以使用为每个数据点返回标量的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()运行计算图形