为了账号安全,请及时绑定邮箱和手机立即绑定

用于预测数字输出的自定义损失函数

用于预测数字输出的自定义损失函数

慕姐8265434 2021-09-14 10:39:47
我希望我的 keras 网络预测 60..200 范围内的数字输出。以我的经验,在这种情况下,仅输出 sigmoid*140+60 或类似的效果非常差,将其转换为类会更好。但是,我正在努力定义损失函数。显然,预测附近的类会更好,并且应该受到较少的惩罚。下面的示例代码。网络显然会更复杂,并且可能部分是卷积的,但这只是开始。当前代码给出错误:“IndexError: only integers, slices ( :), ellipsis ( ...), numpy.newaxis (`None') 和 integer or boolean arrays are valid indexes”。我想这是有道理的,因为反向传播限制了可以做的事情,但我不确定如何正确设计和调试损失函数。classes = np.array(range(60,200,5))nc = classes.shape[0]def myloss(y_true, y_pred):  pred_class = K.argmax(y_pred,axis=1)  return K.sqrt( K.sum( K.square( classes[pred_class] - y_true ) ) )in1 = Input(shape=(77,))mid = Dense(50, activation='tanh')( in1 ) out = Dense(nc, activation='softmax')( mid ) model = Model(inputs=in1, outputs=out)model.add_loss( myloss(sbp, out) )
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信