如何实现需要从softmax输出获取类标签的损失函数?

问题描述

我希望实现一个复合损失函数,该函数包括一个稀疏的交叉熵损失和另一个单独的损失,该损失需要(计算该损失)softmax输出中的预测类标签,即最大概率项的索引softmax输出向量。我最初计算出损失函数如下。

def composite_loss(y_true,y_pred):

  # cross entropy loss
  L_ce = K.sparse_categorical_crossentropy(y_true,y_pred)  

  pi = K.cast(np.pi,'float32')
  k = K.argmax(y_pred,axis=-1)
  k = K.reshape(k,(8,256,1)) # batch size = 8,adding the -1 dimension
  
  ### computing the loss function that uses the predicted class label ###

  return loss 

此损失函数在训练时不会产生错误,但是,由于K.argmax()没有导数,因此我担心在反向传播期间是否正确地确定了复合损失梯度。

有人可以为K.argmax()提供解决方案来解决我的疑问或提供替代方案(它具有导数并且可以正确地将损耗梯度归因于此)吗?

TIA:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...