当前位置: 首页 > 知识库问答 >
问题:

如何转换一个自定义的损失函数与logits,内置在tensorflow到keras?

督冠玉
2023-03-14

我有一个损失函数内建的tenstorflow,它需要logits和标签作为输入:

   def median_weight_class_loss(labels, logits):
       epsilon = tf.constant(value=1e-10)
       logits = logits + epsilon
       softmax = tf.nn.softmax(logits)
       #this is just the number of samples in each class in my dataset divided by the sum of samples 10015.
       weight_sample = np.array([1113,6705,514,327,1099,115,142])/10015
       weight_sample = 0.05132302/weight_sample
       xent = -tf.reduce_sum(tf.multiply(labels * tf.log(softmax + epsilon), weight_sample), axis=1)
       return xent

问题是keras损失函数的格式不同:

   custom_loss(y_true, y_pred)

它使用y_truey_pred作为输入,

我找到了一种在keras中获取Logit的方法,在模型的最后一层中使用线性激活而不是softmax。

   model.add(Activation('linear'))

但我需要我的模型在最后一层有softmax激活,你认为解决方案是什么?非常感谢。

共有1个答案

赏高格
2023-03-14

严格来说,这个损失不需要logits,你可以通过修改损失直接输入softmax概率,比如:

def median_weight_class_loss(y_true, y_pred):
       epsilon = tf.constant(value=1e-10)
       weight_sample = np.array([1113,6705,514,327,1099,115,142])/10015
       weight_sample = 0.05132302/weight_sample
       xent = -tf.reduce_sum(tf.multiply(y_true * tf.log(y_pred + epsilon), weight_sample), axis=1)
       return xent
 类似资料:
  • 本文向大家介绍tensorflow 自定义损失函数示例代码,包括了tensorflow 自定义损失函数示例代码的使用技巧和注意事项,需要的朋友参考一下 这个自定义损失函数的背景:(一般回归用的损失函数是MSE, 但要看实际遇到的情况而有所改变) 我们现在想要做一个回归,来预估某个商品的销量,现在我们知道,一件商品的成本是1元,售价是10元。 如果我们用均方差来算的话,如果预估多一个,则损失一块钱,

  • 嗨,我一直试图使一个自定义损失函数在kerasdice_error_coefficient。它有它的实现在张量板和我尝试使用相同的函数在keras与张量流但它不断返回一个NoneType当我使用model.train_on_batch或model.fit在那里,因为它给适当的值时,使用在模型中的指标...能不能请人帮帮我我该怎么办?我尝试过跟随像Keras-FCN这样的库,在那里他使用了自定义损失

  • 本文向大家介绍TensorFlow自定义损失函数来预测商品销售量,包括了TensorFlow自定义损失函数来预测商品销售量的使用技巧和注意事项,需要的朋友参考一下 在预测商品销量时,如果预测多了(预测值比真实销量大),商家损失的是生产商品的成本;而如果预测少了(预测值比真实销量小),损失的则是商品的利润。因为一般商品的成本和商品的利润不会严格相等,比如如果一个商品的成本是1元,但是利润是10元,那

  • 我正在尝试使用Keras创建自定义损失函数。我想根据输入计算损失函数并预测神经网络的输出。 我尝试在Keras中使用自定义loss函数。我认为y_true是我们为训练提供的输出,y_pred是神经网络的预测输出。下面的损失函数与 Keras 中的“mean_squared_error”损失相同。 我想使用神经网络的输入也计算自定义损失函数除了mean_squared_error损失。有没有办法将输

  • 我需要一些帮助与keras损失函数。我一直在Tensorflow后端的keras上实现自定义损失功能。 我已经在numpy中实现了自定义损失函数,但如果能将其转换为keras损失函数,那就太好了。丢失函数采用数据帧和用户id序列。如果用户id不同,则相同用户id的欧氏距离为正和负。函数返回数据帧的合计标量距离。 我试图实现到keras损失函数。我提取Numpy数组从y_true和y_pred张量对

  • 我手头有一个问题,它优化了一个损失函数,而不是y_pred和y_true的函数。通过Keras留档后,我发现所有自定义损失函数必须是y_pred和y_true的函数。 在Keras中是否有其他方法实现我的损失函数?