• 【深度学习】实验1布置:Softmax实现手写数字识别


    DL_class

    学堂在线《深度学习》实验课代码+报告(其中实验1和实验6有配套PPT),授课老师为胡晓林老师。课程链接:https://www.xuetangx.com/training/DP080910033751/619488?channel=i.area.manual_search

    持续更新中。
    所有代码为作者所写,并非最后的“标准答案”,只有实验6被扣了1分,其余皆是满分。仓库链接:https://github.com/W-caner/DL_classs。 此外,欢迎关注我的CSDN:https://blog.csdn.net/Can__er?type=blog
    部分数据集由于过大无法上传,我会在博客中给出下载链接。如果对代码有疑问,有更好的思路等,也非常欢迎在评论区与我交流~

    实验1:Softmax实现手写数字识别

    相关知识点: numpy科学计算包,如向量化操作,广播机制等

    1 简介

    本次案例中,你需要用python实现Softmax回归方法,用于MNIST手写数字数据集分类任务。你需要完成前向计算loss和参数更新。

    你需要首先实现Softmax函数和交叉熵损失函数的计算。
    在这里插入图片描述

    在更新参数的过程中,你需要实现参数梯度的计算,并按照随机梯度下降法来更新参数。具体计算方法可自行推导,或参照第三章课件。

    在这里插入图片描述

    2 MNIST数据集

    MNIST手写数字数据集是机器学习领域中广泛使用的图像分类数据集。它包含60,000个训练样本和10,000个测试样本。这些数字已进行尺寸规格化,并在固定尺寸的图像中居中。每个样本都是一个784×1的矩阵,是从原始的28×28灰度图像转换而来的。MNIST中的数字范围是0到9。下面显示了一些示例。 注意:在训练期间,切勿以任何形式使用有关测试样本的信息。

    在这里插入图片描述

    3 任务要求

    3.1 代码清单

    a) data/ 文件夹:存放MNIST数据集。你需要下载数据,解压后存放于该文件夹下。下载链接见文末,解压后的数据为 *ubyte 形式;

    b) solver.py 这个文件中实现了训练和测试的流程。建议从这个文件开始阅读代码;

    c) dataloader.py 实现了数据加载器,可用于准备数据以进行训练和测试;

    d) visualize.py 实现了plot_loss_and_acc函数,该函数可用于绘制损失和准确率曲线;

    e) optimizer.py 你需要实现带momentum的SGD优化器,可用于执行参数更新;

    f) loss.py 你需要实现softmax_cross_entropy_loss,包含loss的计算和梯度计算;

    g) runner.ipynb 完成所有代码后的执行文件,执行训练和测试过程。

    3.2 要求

    我们提供了完整的代码框架,你只需要完成optimizer.py,loss.py 中的 #TODO部分。你需要提交整个代码文件和带有结果的runner.ipynb (不要提交数据集) 并且附一个pdf格式报告,内容包括:

    a) 记录训练和测试的准确率。画出训练损失和准确率曲线;

    b) 比较使用和不使用momentum结果的不同,可以从训练时间,收敛性和准确率等方面讨论差异;

    c) 调整其他超参数,如学习率,Batchsize等,观察这些超参数如何影响分类性能。写下观察结果并将这些新结果记录在报告中。

    3.3 其他
    1. 注意代码的执行效率,尽量不要使用for循环;

    2. 不要在pdf报告中粘贴很多代码(只能包含关键代码),对添加的代码作出解释;

    3. 不要使用任何深度学习框架,如TensorFlow,Pytorch等;

    4. 禁止抄袭。

  • 相关阅读:
    #机器学习--实例--基于梯度优化的线性最小二乘法
    小程序全局变量与组件内部实时监听全局变量的改变
    基于分类分级的医疗临床数据合规共享与安全防护建设实践
    java毕业设计毕业生就业去向登记管理系统mybatis+源码+调试部署+系统+数据库+lw
    404、左叶子之和
    flink运行时组件和调度原理
    uwsgi配置Django(在树莓派系统linux)
    一位年薪35W的测试被开除,回怼的一番话,令人沉思
    用命令行获取操作系统名称版本+CPU等信息
    什么是video codec? video codec在实际业务的应用。
  • 原文地址:https://blog.csdn.net/Can__er/article/details/127843984