北京交通大学《深度学习》专业课,实验2-前馈神经网络

1. 源代码

见资源“北京交通大学《深度学习》专业课,实验2-前馈神经网络”

2. 实验内容

(1)手动实现前馈神经网络解决上述回归、二分类、多分类任务
        分析实验结果并绘制训练集和测试集的loss曲线
(2)利用torch.nn实现前馈神经网络解决上述回归、二分类、多分类任务
        分析实验结果并绘制训练集和测试集的loss曲线
(3)在多分类实验的基础上使用至少三种不同的激活函数
        对比使用不同激活函数的实验结果
(4)对多分类任务中的模型评估隐藏层层数和隐藏单元个数对实验结果的影响
        使用不同的隐藏层层数和隐藏单元个数,进行对比实验并分析实验结果
(5)在多分类任务实验中分别手动实现和用torch.nn实现dropout
         探究不同丢弃率对实验结果的影响(可用loss曲线进行展示)
(6)在多分类任务实验中分别手动实现和用torch.nn实现L2正则化
        探究惩罚项的权重对实验结果的影响(可用loss曲线进行展示)
(7)对回归、二分类、多分类任务分别选择上述实验中效果最好的模型,采用10折交叉验证评估实验结果
        要求除了最终结果外还需以表格的形式展示每折的实验结果

3. 基础知识

4. 学习question&answer

问题一:手动实现前馈神经网络解决回归任务

模仿教程中的手动实现 ReLu 激活函数时,
报错:
原因:待转换类型的 PyTorch Tensor 变量带有梯度,直接将其转换为 numpy 数据将破坏计算图,因此 numpy 拒绝进行数据转换。
解决办法: 改变实现方式:
返回 max{0, input} 实现 ReLu 函数。

 问题二:手动实现前馈神经网络解决多分类任务

报错:在 loss.backward () 的时候出现 RuntimeError : Found dtype Long but expected Float
解决过程:
        • 检查 loss 类型( flaot32 准确)
        • →查找资料
        • loss 函数的输入类型不一致

         l = loss(y_hat, y).sum() à l = loss(y_hat, y.float()).sum() 

问题三

问题四:深度学习过程中梯度消失

        操作过程:

         结果:

问题五:多分类任务中的模型评估隐藏层层数和隐藏单元个数对实验结果的影响

        答:

        理论:层数越深 → 模型拟合函数的能力增强,效果会更好

        实际:简单数据集,隐藏层的层数和隐藏单元个个数不能过多。→ 更深的层数可能会带来过拟合的问题,同时也会增加训练难度,使模型难以收敛。

        因此在使用神经网络时,最好可以参照已有的性能良好的模型。

 问题六:深度学习和机器学习的区别

        模型复杂度:深度学习模型通常比机器学习模型更为复杂,包含多个层次的神经网络结构,这些网络可以从数据中学习更加抽象和高级的特征表示。

        数据量要求:深度学习模型通常需要更多的数据来训练,因为它们的参数量非常大,需要足够的样本来避免过拟合。

        特征工程:深度学习模型通常不需要进行显式的特征工程,因为它们可以自动从原始数据中学习特征表示。相比之下,机器学习模型需要手动选择和构造特征。

        计算要求:深度学习模型通常需要更强大的计算资源和更长的训练时间,因为它们的模型复杂度和参数量更高。

        应用范围:深度学习通常用于处理视觉、语音、自然语言处理等具有复杂结构和模式的数据,而机器学习则更加广泛,可应用于各种任务,如回归、分类、聚类等。

        总结:深度学习是机器学习的一个分支,它利用了深层次的神经网络和自动化特征提取等技术,以更高效和准确的方式处理数据和任务。

前馈解决回归、二分类、多分类

前馈神经网络解决回归问题的loss曲线:

前馈神经网络解决二分类问题的loss曲线:

前馈神经网络解决多分类问题的loss曲线:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/801157.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

发电机保护屏的工作原理和组成

发电机保护屏的工作原理和组成 发电机保护屏的工作原理是通过监测发电机的电气参数和运行状态,‌一旦发现异常或故障,‌及时采取相应的保护措施,‌以确保发电机的安全运行。‌ 发电机保护屏通常包含各种传感器、‌保护继电器和控制…

Golang | Leetcode Golang题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; func isPowerOfTwo(n int) bool {const big 1 << 30return n > 0 && big%n 0 }

整数或小数点后补0操作

效果展示&#xff1a; 整数情况&#xff1a; 小数情况&#xff1a; 小编这里是以微信小程序举例&#xff0c;代码通用可兼容vue等。 1.在utils文件下创建工具util.js文本 util.js页面&#xff1a; // 格式…

docker desktop历史版本安装

1.安装choco Windows安装 choco包管理工具-CSDN博客 2.通过choco安装 下面例子为安装旧版2.3.0.2,其它版本类似 Chocolatey Software | Docker Desktop 2.3.0.2 https://download.docker.com/win/stable/45183/Docker%20Desktop%20Installer.exe choco install docker-des…

ESP32-S3多模态交互方案在线AI语音设备应用,启明云端乐鑫代理商

随着物联网&#xff08;IoT&#xff09;和人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;嵌入式设备正逐渐变得智能化&#xff0c;让我们的家庭生活变得更加智能化和个性化。 随着大型语言模型的不断进步和优化&#xff0c;AI语音机器人设备能够实现更加智能、…

绝缘子污秽comsol仿真参数

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

Java+springboot+vue智慧班牌小程序源码,智慧班牌系统可以提供哪些服务?

智慧班牌全套源码&#xff0c;系统技术架构&#xff1a;Javaspringbootvue element-ui小程序电子班牌&#xff1a;Java Android演示正版授权。 智慧班牌在智慧校园的数字化建设中提供了多种服务&#xff0c;这些服务不仅丰富了校园的信息展示方式&#xff0c;还促进了家校互动…

渲染100农场有哪些优势?渲染100邀请码1a12

渲染100是知名的渲染农场&#xff0c;深受广大设计师欢迎&#xff0c;比起其他农场&#xff0c;它有什么优势呢&#xff1f;我们一起来看看。 1、资源丰富 渲染100拥有强大的计算集群&#xff0c;能多线处理大规模、超复杂的场景渲染需要&#xff0c;性能卓越。2、成本低廉 渲…

文件的顺序读写

文件读写函数介绍 文件顺序读写函数 函数名功能适用于fputc 字符输出函数 所有输出流 fgetc 字符输⼊函数 所有输⼊流 fputs ⽂本⾏输出函数 所有输出流fgets ⽂本⾏输⼊函数 所有输⼊流fprintf 格式化输出函数 所有输出流fscanf 格式化输⼊函数 所有输⼊流fwrite ⼆进制输出…

Multi-modal Information Fusion for Action Unit Detection in the Wild

标题&#xff1a;多模态信息融合用于野外动作单元检测 源文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2023W/ABAW/papers/Deng_Multi-Modal_Information_Fusion_for_Action_Unit_Detection_in_the_Wild_CVPRW_2023_paper.pdfhttps://openaccess.thecvf.com/…

【HarmonyOS开发】Tabs使用封装

背景 在写Tabs时&#xff0c;会使用很多个TabContent来实现不同页面的展示内容&#xff0c;但是如果TabContent数量很多时&#xff0c;会导致Tabs代码量大而且很臃肿&#xff0c;因此想着尝试去封装Tabs的使用&#xff0c;可以让界面整洁和对内容界面的解耦。 主要依托于wrap…

数据驱动下的私域运营战略布局

一、以用户为中心的组织重构或整合 发现&#xff0c;市场上大部分做的非常成功的私域项目&#xff0c;都是由CEO推动的、基于该战略的组织重构去驱动的。 我们也看到&#xff0c;在很多公司&#xff0c;私域运营是由品牌部门、CRM部门和Trade Marketing部门合作一起运营的。 …

SpringCloud教程 | 第十篇: 读取Nacos的配置

1、引入依赖 <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-config-spring-boot-starter</artifactId><version>0.2.7</version></dependency> 2、在启动类加上 NacosPropertySource(dataId"nac…

芯课堂 | 基于ugui上位机工程怎么使用串口烧录素材

1、查看程序初始化串口引脚和波特率 串口引脚是PE7和PE5&#xff0c;默认初始化波特率是115200。可以使用串口模块连接串口引脚&#xff0c;如果用我们的开发板&#xff0c;板载有ch340串口模块&#xff0c;需要用杜邦线把串口模块连接串口引脚&#xff0c;具体可以查看原理图…

stm32学习:(寄存器1)控制寄存器来让led亮

开启时钟&#xff0c;先查找到开启时钟的寄存器&#xff0c;然后通过该寄存器操作时钟的开启或关闭&#xff0c;要打开的是GPIOA的时钟 在芯片手册&#xff0c;找到RCC寄存器描述章节找到APB2外设时钟使能寄存器&#xff08;RCC_APB2ENR)&#xff0c;现在算RCC_APB2ENR这个寄存…

Monaco 使用 DocumentFormattingEditProvider

文档格式化&#xff0c;是 VSCode 比较常用的功能&#xff0c;在文档上点击右键选择格式化文档。效果如下&#xff1a; 在 Monaco 通过 registerDocumentFormattingEditProvider 方法注册处理函数&#xff0c;实现 provider 方法。 provider 方法返回格式化好的代码。 TextE…

【工具】2102- es-toolkit:一个现代 JavaScript 工具包,体积更小,内置 TypeScript 支持...

介绍 es-toolkit 是一款先进且具备高性能的现代化 JavaScript 实用工具库&#xff0c;其拥有较小的捆绑包规模以及强大的类型注解&#xff0c;同时还提供了一系列非常不错的函数&#xff0c;适合日常使用。 相较于 lodash 等替代方案&#xff0c;es-toolkit 所提供的包体积显著…

C++相关概念和易错语法(21)(虚函数、协变、析构函数的重写)

多态的核心是虚函数&#xff0c;本文从虚函数出发&#xff0c;根据原理慢慢推进得到结论&#xff0c;进而理解多态 1.虚函数 先看一下下面的代码&#xff0c;想想什么导致了这个结果 #include <iostream> using namespace std;class A { public:virtual void test(){co…

原来,BI数据分析也是有模板的

在当今数据驱动的时代&#xff0c;商业智能&#xff08;BI&#xff09;数据分析已经成为企业决策的重要工具。然而&#xff0c;很多人可能并不了解&#xff0c;BI数据分析并非从零开始&#xff0c;而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

Springboot + JWT 的 Token 登录验证

目录 项目结构 一、 引入依赖 二、自定义Auth认证注解 三、 编写登录拦截器 四、定义跨域拦截器 五、 定义全局异常处理器 六、定义工具类 1. 统一错误状态码 2.统一响应类 3.Token工具类 七、 编写实体类 八、 定义控制器 1.定义登录控制器类 2 定义报错处理器 …