欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > numpy手写二分类交叉熵

numpy手写二分类交叉熵

2025/2/24 16:13:20 来源:https://blog.csdn.net/weixin_46460463/article/details/142286653  浏览:    关键词:numpy手写二分类交叉熵

在这里插入图片描述

下面是一个使用NumPy手写二分类交叉熵损失的代码,包括详细注释。我们将定义一个简单的函数来计算交叉熵损失,并使用main函数来演示如何使用它。

import numpy as npdef binary_cross_entropy(y_true, y_pred):"""计算二分类交叉熵损失参数:y_true -- 真实标签,形状为 (n_samples, ),其中每个值都是 0 或 1y_pred -- 预测概率,形状为 (n_samples, ),值范围在 0 和 1 之间返回:loss -- 二分类交叉熵损失的标量"""# 防止 log(0) 导致数值问题,使用 epsilon 限制预测概率的最小值epsilon = 1e-15y_pred = np.clip(y_pred, epsilon, 1 - epsilon)# 计算交叉熵损失loss = -np.mean(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))return lossdef main():# 定义真实标签和预测概率y_true = np.array([1, 0, 1, 0, 1])   # 真实标签y_pred = np.array([0.9, 0.1, 0.8, 0.3, 0.6])  # 预测概率# 计算交叉熵损失loss = binary_cross_entropy(y_true, y_pred)print(f"Binary Cross Entropy Loss: {loss}")if __name__ == "__main__":main()

代码解释

  1. binary_cross_entropy函数:

    • 输入:
      • y_true:真实标签,值为0或1。
      • y_pred:预测概率,范围在0到1之间。
    • 处理:
      • 使用np.clipy_pred的值限制在一个非常小的范围内,以避免log(0)带来的数值问题。
      • 计算交叉熵损失公式。
    • 输出:返回计算得到的二分类交叉熵损失。
  2. main函数:

    • 创建一些示例数据,包括真实标签和预测概率。
    • 调用binary_cross_entropy函数来计算损失。
    • 打印计算结果。

运行这个代码将输出二分类交叉熵损失的值。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com