深度学习pytorch——过拟合欠拟合测试深度学习模型(持续更新)

随着项数越来越多,函数的图形就更加复杂,多项式也更加的复杂。 

课时55 过拟合与欠拟合_哔哩哔哩_bilibili

如果利用多项式建造复杂模型,从仅仅一个常数至一个多次方函数,将会发现在线上的点会变得越来越多,这种逐渐接近样本点的过程叫做拟合。

欠拟合

使用的模型复杂度小于真模型的称为欠拟合,表现在数据上的情况就是Accuracy和Loss都不是很好:

课时55 过拟合与欠拟合_哔哩哔哩_bilibili

过拟合

 使用的模型复杂度大于真模型的称为过拟合,表现在数据上的情况就是训练的Loss和Accuracy都很好,测试上的Accuracy很差:

课时55 过拟合与欠拟合_哔哩哔哩_bilibili
课时55 过拟合与欠拟合_哔哩哔哩_bilibili

为什么需要测试?

如下图,是Accuracy和Loss随着训练数据的增加出现的现象。在一定数据量的时候,训练结果和测试的结果大致趋势是相同的,但是当数据量增加到一定量的时候,可以明显的看出测试结果出现较大的浮动。这种情况表明了并不是模型训练数据越多,得到的模型就会越好。

课时53 MNIST测试实战_哔哩哔哩_bilibili

如何才能避免这种情况的发生,找到最好的模型?通过测试,发现结果出现较大偏差时,停止训练,根据以前的训练数据找到一个最好的模型。

 应该将测试放在训练的什么位置,即什么时候测试?

1、每次经过几个batch时

2、每次完成一组epoch后

代码演示:

测试puls

一般我们会将数据集人为分成三份,即Train set 、Val set 、 Test set三部分,其中Train set用来训练参数,Val set用来挑选模型,Test set用来做测试。

使用 torch.utils.data.random_split 将训练集划分为 Train set 和 Val set 两部分,代码如下:

#将train数据集进行为train_loader和val_loader(5:1)
print('train:', len(train_db), 'test:', len(test_db))
train_db, val_db = torch.utils.data.random_split(train_db, [50000, 10000])
print('db1:', len(train_db), 'db2:', len(val_db))
train_loader = torch.utils.data.DataLoader(train_db,batch_size=batch_size, shuffle=True)
val_loader = torch.utils.data.DataLoader(val_db,batch_size=batch_size, shuffle=True)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AndroidStudio中一些实用插件

1.RainbowBrackets插件为圆括号、方括号和花括号内的代码添加了漂亮的彩虹色 2.CodeGlance类似于Sublime或Xcode,CodeGlance插件在编辑器中嵌入了代码迷你图。滚动条也有所增大。在CodeGlance预览文件的代码模式下,用户可以快速导航到目标处。 3.ADBWifi…

MrDoc寻思文档 个人wiki搭建

通过Docker快速搭建个人wiki,开源wiki系统用于知识沉淀,教学管理,技术学习 部署步骤 ## 拉取 MrDoc 代码 ### 开源版: git clone https://gitee.com/zmister/MrDoc.git### 专业版: git clone https://{用户名}:{密码…

高等数学基础篇之判断一元函数是否连续、可导、可微,极限、原函数是否存在

一元函数: 一、极限存在的条件 二、连续的条件 三、可导的条件 四、可微的条件 五、原函数存在的条件 目录 一、极限存在的条件 1.自变量趋于无穷大时函数的极限 2.自变量趋于有限值时函数的极限 二、连续的条件 1.自变量改变量趋于0时,函数值…

深入Facebook的世界:探索数字化社交的无限可能性

引言 随着数字化时代的到来,社交媒体平台已经成为了人们日常生活中不可或缺的一部分,而其中最为突出的代表之一便是Facebook。作为全球最大的社交媒体平台之一,Facebook不仅仅是一个社交网络,更是一个数字化社交的生态系统&#…

Github 2024-03-28Go开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-28统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目9非开发语言项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:…

IP如何异地共享文件?

【天联】 组网由于操作简单、跨平台应用、无网络要求、独创的安全加速方案等原因,被几十万用户广泛应用,解决了各行业客户的远程连接需求。采用穿透技术,简单易用,不需要在硬件设备中端口映射即可实现远程访问。 异地共享文件 在…

java数据结构与算法刷题-----LeetCode744. 寻找比目标字母大的最小字母

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 二分查找 二分查找 解题思路:时间复杂度O( l o g 2 …

浏览器扩展程序增加 vue_dev_tools 调试工具

1、引言 在做 Vue 项目的开发时,我们经常需要在页面上调试,接下来介绍如何在浏览器扩展程序增加 vue_dev_tools 调试工具。 Download the Vue Devtools extension for a better development experience 翻译:下载Vue Devtools扩展以获得更好…

【docker】查看并拷贝容器内文件

一、查询容器 查询所有容器 docker ps查询名为os11的容器 docker ps | grep os11查询名为os11的容器(包含不运行的) docker ps -a| grep os11 docker ps [option] 显示结果介绍如下: 参考:[https://blog.51cto.com/u_15009374/31…

机器学习——聚类算法-DBSCAN

机器学习——聚类算法-DBSCAN DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,可以发现任意形状的簇,并能有效处理噪声数据。本文将介绍DBSCAN算法的核心概念、算法流程、优缺点…

Linux下配置Java

今天来说一说如何在linux系统中配置java环境。 简单来说就是下载jdk-设置环境变量 一、下载jdk 直接去oracle官网寻找jdk https://www.oracle.com/cn/java/technologies/downloads/#jdk17-linux 我就是直接下载了这个 二、环境变量配置 export JAVA_HOME/usr/local/java/jdk…

Neural Latents Benchmark: 尖锋序列潜变量模型

Neural Latents Benchmark ‘21: Evaluating latent variable models of neural population activity 挑战赛说明: https://neurallatents.github.io/ 挑战赛地址: https://eval.ai/web/challenges/challenge-page/1256/overview NeuralLatent 论文: https://arxiv.org/abs/…