2024年夏季《深度学习》学习报告_Week_1

2024年夏季《深度学习》学习报告

姓名和学号XXX,XXX
本实验属于哪门课程XXX大学24夏《深度学习》
学习内容深度学习基础
博客地址XXXXXXX

一、学习目标

【第⼀部分:代码练习】

在⾕歌 Colab 上完成 pytorch 代码练习中的 2.1 pytorch基础练习、2.2螺旋数据分类,关键步骤截图,并附一些自己的想法和解读。

【第⼆部分:问题总结】

思考下面的问题:

1、AlexNet有哪些特点?为什么可以比LeNet取得更好的性能?

2、激活函数有哪些作⽤?

3、梯度消失现象是什么?

4、神经网络是更宽好还是更深好?

5、为什么要使用Softmax?

6、SGD 和 Adam 哪个更有效?

二、学习内容

列出实验的关键步骤、代码解析、截图。

2.1 pytorch 基础练习

  • Colab 练习链接:https://colab.research.google.com/drive/1oJTxrymgG5AHgwO-b0-vhOwOapuOhC45?usp=drive_link

  • 基础练习部分包括 pytorch 基础操作

  • 要求:把代码输⼊ colab,在线运⾏观察效果。

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

2.2 螺旋数据分类

  • Colab 练习链接:https://colab.research.google.com/drive/1EtSVevvNPnsiR04O9XDgWxqu2yjjOYEd?usp=sharing

  • ⽤神经⽹络实现简单数据分类

  • 要求:把代码输⼊ colab,在线运⾏观察效果

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

三、程序运行结果

  • 2.1:https://colab.research.google.com/drive/1oJTxrymgG5AHgwO-b0-vhOwOapuOhC45?usp=drive_link

  • 2.2:https://colab.research.google.com/drive/1EtSVevvNPnsiR04O9XDgWxqu2yjjOYEd?usp=sharing

四、问题总结与体会

描述实验过程中所遇到的问题,以及是如何解决的。有哪些收获和体会,对于课程的安排有哪些建议。

问题1

请添加图片描述

  • 问题:在上述代码中遇到“expected scalar type Float but found Long" 的错误。
  • 解决方法:
  • 因为input也就是我们的v是torch.long类型的而weight是torch.float类型
    所以在做矩阵乘法的时候这两种类型的不一致导致了报错
    解决方法就是把v的dtype显示地设置成torch.float代码就成功运行了

请添加图片描述

问题2

请添加图片描述

  • 问题:在上述代码中遇到“[Errno 2] No such file or directory: 'res/ziegler.png" 的错误。

  • 解决方法:创建了此目录下的文件夹得以解决。图片是随机找的图片上传到res文件夹,感觉不会造成什么影响,但是如果没有res/ziegler.png的话就运行不了。

请添加图片描述

问题总结

1、AlexNet有哪些特点?为什么可以比LeNet取得更好的性能?

img

AleNet是真正意义上的深度卷积神经网络,并在2012年ImagNet竞赛中获得冠军。相比于LeNet网络,Alexnet深度更深,参数更多,应用更广泛。为了改善性能,引入了ReLU、Dropout和LRN等方法,并使用了双GPU加速。

2、激活函数有哪些作用?

让多层神经网络可以运作,拟合非线性函数,使神经网络可以对非线性数据进行建模。

3、梯度消失现象是什么?

由于误差通过梯度传播,前两层的参数不变,只有最后一层的参数才会改变,导致深层网络的参数难以更新。

4、神经网络是更宽好还是更深好?

深度——神经网络的层数
宽度——每层的通道数

更深的网络,有更好的非线性表达能力,可以学习更复杂的变换,从而可以拟合更加复杂的特征,更深的网络可以更简单地学习复杂特征。

网络加深会带来梯度不稳定、网络退化的问题,过深的网络会使浅层学习能力下降。深度到了一定程度,性能就不会提升了,还有可能会下降。

足够的宽度可以保证每一层都学到丰富的特征,比如不同方向,不同频率的纹理特征。宽度太窄,特征提取不充分,学习不到足够信息,模型性能受限。

宽度贡献了网络大量计算量,太宽的网络会提取过多重复特征,加大模型计算负担。

提升网络性能可以先从宽度入手,提高每一层的通道的利用率、用其他通道的信息补充较窄的层,找到宽度的下限,用尽量小的计算量得到更好的性能。

5、为什么要使用Softmax?

Softmax是激活函数的一种,常用于将一个向量(或一组实数)映射为一个概率分布,多分类问题就变成了一个概率分布函数拟合问题。即N分类互斥,只能选择其一时常用softmax。

6、SGD 和 Adam 哪个更有效?

Adam: 由于其易用性和快速收敛的特点,Adam非常适合在需要快速得到结果的场景中使用,特别是在计算资源有限或模型较复杂时。

SGD: 如果模型训练时出现过拟合,或者当你有足够的时间和资源来精细调整学习率时,SGD可能是更好的选择。对于大规模分布式训练,SGD的泛化能力可能更优。

总之,选择哪种优化算法取决于具体任务、模型的复杂性、可用的计算资源以及是否需要模型有更好的泛化能力。在实践中,可能需要尝试不同的优化算法,以找到最适合当前任务的选项。

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!对于心脏病预测的问题,使用循环神经网络(RNN)是一种常见的方法。RNN适用于处理序列数据,而心电图信号就是一种序列数据。在使用RNN进行心脏病预测时,你可以将心电图信号作为输入序列,然后通过训练RNN模型来预测患者是否患有心脏病。 首先,你需要准备一个合适的数据集,其中包含心电图信号和相应的心脏病标签。可以使用公开的心电图数据集,如PTB数据库或MIT-BIH数据库。然后,你可以对数据进行预处理和特征工程,如数据清洗、滤波、降采样等。 接下来,你可以构建一个RNN模型。RNN模型由一系列循环层组成,每个循环层都会处理一个时间步的输入数据。你可以选择不同类型的RNN单元,如简单循环单元(SimpleRNN)、长短期记忆网络(LSTM)或门控循环单元(GRU)。通过添加适当的全连接层和激活函数,你可以将RNN模型输出映射到二分类问题(有或无心脏病)的结果。 然后,你可以使用训练集对RNN模型进行训练,并使用验证集进行模型调优。在训练过程中,你可以使用适当的损失函数(如交叉熵)和优化算法(如随机梯度下降)来最小化模型的预测误差。 最后,你可以使用测试集对训练好的模型进行评估,并计算模型的性能指标,如准确率、精确率、召回率等。这些指标可以帮助你评估模型的预测能力和泛化能力。 需要注意的是,心脏病预测是一个复杂的医学问题,仅仅使用心电图信号可能不能得到准确的预测结果。通常情况下,还需要结合其他患者的临床信息和医学知识来进行综合评估。因此,在进行心脏病预测时,建议与专业医生合作,并遵循相关的医学准则和规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布六Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值