- 博客(15)
- 收藏
- 关注
原创 【李沐 | 动手实现深度学习】9-2 Pytorch神经网络基础
本文介绍了PyTorch神经网络的两个重要内容:自定义层的实现和模型参数读写。在自定义层部分,展示了无参数层(CenteredLayer)和带参数层(MyLinear)的实现方法,重点说明了参数封装(nn.Parameter)和前向传播计算。在模型读写部分,详细讲解了如何保存和加载张量、字典以及完整的模型参数(state_dict),特别强调了评估模式(eval)对模型推理的重要性。通过实例代码演示了参数保存为.params文件及后续加载使用的完整流程,确保模型可以正确恢复和使用。这些技巧对模型开发和部署具
2025-12-15 16:55:18
969
原创 【李沐 | 动手实现深度学习】9-1 Pytorch神经网络基础
本文介绍了深度学习中的关键组件层(Layer)和块(Block),以及参数管理方法。层是神经网络的基本运算单元,块是多个层的逻辑组合,它们都继承自PyTorch的nn.Module基类。文章详细讲解了如何自定义块,包括继承nn.Module、初始化父类和实现forward()方法。在参数管理部分,介绍了如何通过state_dict()访问参数,以及参数初始化的多种方法,包括内置初始化和自定义初始化。此这些内容帮助读者从深度学习基础用户进阶为高级用户,掌握模型构建和参数管理的核心外还讨论了参数绑定的实现方式。
2025-12-15 14:44:39
866
原创 【李沐 | 动手实现深度学习】8 实战:Kaggle房价预测
本文介绍了如何应用深度学习技术解决Kaggle房价预测问题。主要内容包括:1) 数据准备:下载并加载数据集,进行初步观察;2) 数据预处理:对连续值进行标准化处理,对离散值进行独热编码;3) 模型训练:使用简单的线性回归模型,采用对数误差损失函数和Adam优化器;4) K折交叉验证:用于模型选择和超参数调整。特别讨论了为什么对数误差比相对误差更适合房价预测问题,包括其尺度不变性、对称性以及对零值的处理优势。整个过程展示了将深度学习理论知识应用于实际问题的完整流程。
2025-12-14 13:59:44
844
原创 【李沐 | 动手实现深度学习】7 数值稳定性 + 模型初始化和激活函数
数值稳定性问题指的是梯度数值过大或过小,而导致这个问题的根本原因在于深层网络中的权重和激活函数导数连乘积累。梯度(Gradient)的数值:这是最直接受影响的数值。权重(Weight)和参数(Parameter)的数值:它影响梯度的连乘项。激活值(Activation)的数值:激活函数的输出值。深度学习的稳定训练,本质是一个“数值守恒问题”。我们希望:前向信号:不变形反向梯度:不变形权重初始化→ 决定“乘数的尺度”激活函数→ 决定“乘数是否系统性 <1”两者缺一不可。愉快的一天又结束了。。。。。
2025-12-13 22:21:59
538
原创 【李沐 | 动手实现深度学习】6 丢弃法(Dropout)
本文介绍了深度学习中的Dropout方法,这是一种通过在训练过程中随机丢弃神经元来防止过拟合的正则化技术。文章从理论层面解释了Dropout的工作原理:通过随机失活部分神经元,迫使网络学习更通用和鲁棒的特征,避免神经元间的过度依赖。在实现方面,详细展示了从零构建Dropout层的方法,并比较了两种网络实现方式(手动实现和PyTorch内置方法)。最后讨论了Dropout的应用场景,指出其更适合全连接层而非卷积层,并阐述了模型容量与正则化的平衡关系。Dropout作为一种高效的正则化手段,能有效提升模型的泛化
2025-12-12 20:43:38
529
原创 【李沐 | 动手实现深度学习】5 权重衰减(L2 正则化)
本文探讨了权重衰减在控制模型复杂度中的应用。通过理论分析指出,模型参数过大易导致过拟合,而权重衰减通过硬性限制(参数范数上限)或柔性限制(L2/L1惩罚项)来约束参数范围。实验部分对比了无权重衰减(训练损失趋零但测试损失高)和有权重衰减(泛化能力提升)的效果,并展示了PyTorch中通过优化器自动实现权重衰减的简洁方法。结果表明,L2正则化能有效控制模型复杂度,提升泛化性能。
2025-11-29 23:54:53
926
原创 【李沐 | 动手实现深度学习】4 模型选择+过拟合与欠拟合
本文探讨了机器学习中的模型选择、过拟合与欠拟合问题。首先介绍了训练误差和泛化误差的概念,通过学生考试的例子形象说明两者的区别。文章详细分析了模型复杂度对拟合效果的影响:简单模型容易欠拟合,复杂模型容易过拟合。为解决数据稀缺问题,介绍了验证集和K折交叉验证方法。通过多项式回归的代码实例,展示了不同复杂度模型的实际表现:三阶多项式正常拟合,线性模型欠拟合,高阶模型过拟合。最后强调机器学习的目标是获得良好泛化能力的模型,需要在模型复杂度和数据复杂度之间找到平衡,并指出深度学习模型往往在训练集上表现更好,需要通过正
2025-11-29 19:54:45
1248
原创 【李沐 | 动手实现深度学习】3 多层感知机(MLP)的实现
本文介绍了多层感知机(MLP)的实现方法。首先阐述了MLP作为基础神经网络模型的特点,包括多层结构、全连接和非线性激活函数。然后详细展示了从零实现MLP与使用PyTorch高级API的简洁实现方式。MLP作为深度学习的基础模型,其原理对理解更复杂网络架构具有重要意义。
2025-11-27 12:11:48
684
原创 Verilog流水线CPU设计_计算机组成原理课程设计-期末大作业
本文介绍了大三计组课程设计的流水线CPU实现项目。项目采用Verilog语言设计5级流水线CPU(IF、ID、EX、Mem、Wr),重点解决了数据冒险和控制冒险问题,实现了11条指令的流水线执行。实验使用QuartusⅡ9.0工具完成综合仿真,最终获得优秀评级。设计包含PC、加法器、指令存储器等模块,并实现了转发功能。项目完整报告包含详细分析,提供有偿咨询服务。
2025-11-26 17:13:32
883
原创 【李沐 | 动手实现深度学习】2 Softmax回归的实现
本文是李沐老师 |【动手学深度学习】课程的动手部分笔记 - 2 Softmax 回归篇。记录使用PyTorch实现Fashion-MNIST图像分类的全过程:包括1) 图片分类数据及 2) Softmax回归 从零实现 3) Softmax回归简洁实现针对课程中主包自身出现的疑问进行讨论并记录,欢迎指正!
2025-11-26 16:10:35
932
原创 【李沐 | 动手实现深度学习】1 线性回归的实现
本文是B站沐神的《动手深度学习课程的学习笔记,介绍了线性回归从零实现和使用PyTorch框架实现的两种方法。从零实现部分详细讲解了数据生成、模型构建、损失函数定义和梯度下降优化过程,针对yield生成器、torch.no_grad()等疑问点进行讨论并记录。框架实现部分展示了如何利用PyTorch的nn模块、DataLoader和优化器简化开发流程,包括数据加载、模型定义、参数初始化和训练循环。通过对比两种实现方式,让初学者了理解底层原理的重要性。
2025-11-25 10:35:09
631
原创 【VMware Workstation Pro 17】 安装【CentOS 7.6】 以及 部署【OpenGauss 6.0 RTC】 超详细实验教程
本文详细记录了关于虚拟机VMware上CentOS 7.6版本操作系统的安装,以及数据库管理系统openGauss 6.0.0 - RCT 的部署 过程
2024-10-16 09:27:19
1777
原创 C++重点(提高)多态与虚函数——深入了解虚函数表与多态
继承、封装、多态是C++的三大特性,而其中多态技术则通过虚函数实现来体现,而虚函数的机理是大多数课程中所不曾涉及的,但是对于虚函数表和多态的掌握,还意味着在实际开发中程序员能充分地利用C++面向对象编程中的多态技术,写出高扩展性以及耦合度较低的优质代码。
2023-10-31 23:25:57
163
1
原创 C与C++(提高)动态内存分配——new(delete)与malloc(free)辨析—超详解
动态创建变量(数组)时即是在堆区进行创建,我们知道,C++中通过new关键字动态开辟空间,使用delete释放;C语言中通过malloc关键字在动态开辟空间,使用free释放.它们之间有何区别,结合自己所学知识并参考了许多博主的文章,讨论C++与C中的动态内存分配区别做出总结。
2023-10-25 13:41:29
956
1
计算机组成原理-课程设计-期末大作业-流水线CPU设计
2025-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅