当前位置:   article > 正文

cross_entropy_error(y, t)和accuracy_function(y, t)对于正确解(数组版)的应用_accuracy function

accuracy function

什么是好代码?

  • 代码不能写死
  • 代码要留出入口来

要有良好的复用性

要有良好的兼容性,不管是对于一维向量,还是二维矩阵,都应该能根据实际情况准确的输出相应的值

损失函数:交叉熵误差

# 正确解是数组,区分输入是全部还是batch,都是二维矩阵,但是如果是一维向量,那就需要手动转为二维矩阵,才好使用numpy工具
def cross_entropy_error(y, t):
    if y.ndim == 1:
        y=y.reshape(1,y.size)# 将y转为二维矩阵,并命令行元素为数量个数
        t=t.reshape(1,t.size)

    # use batches
    batch_size = y.shape[0]
    return -np.sum(t * np.log(y + 1e-7)) / batch_size # 返回值只有一个,通过*完成数量积,然后sum计算
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

过程监督

不管是直接将测试集数据全部输入,还是使用batch抽取数据输入,输入的结果都是二维矩阵

在这里插入图片描述

结果监督

在这里插入图片描述

准确率计算

def accuracy_function(y, t):
    accuracy_count = 0
    predict_result = np.argmax(y, axis=1)
    correct_reslut = np.argmax(t, axis=1)

    for i in range(0, predict_result.shape[0]):
        if predict_result[i] == correct_reslut[i]:
            accuracy_count = accuracy_count + 1

    return accuracy_count / y.shape[0] * 100
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

过程监督

思考

不管是将训练集数据一次性全部输入

  • 还是batch的方式输入

在计算预测结果的准确率的时候还是除以行元素的个数,所以准确率不会受到影响

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/144911?site
推荐阅读
相关标签
  

闽ICP备14008679号