【原创首发】训练集停止训练后,验证集加入训练(在深度学习算法中)

Task4:Pytorch实现模型训练与验证 目录一、前言二、模型训练与验证三、保存模型与调参 一、前言 DL中,当构建了一个CNN模型,只是定义了一个Input、Output接口,无论是单张图片还是Batch多张图片,都需要取训练这个模型以达到目的得参数,训练一个模型一般有三个步骤: 分别定义两个数据集trainsets和validsets,分别完成模型的训练与验证 保存最优参数(权重、偏置等) 记录trainsets和validsets的精度,便于调参。 通过以上的步骤,可以得到CNN模型的参数了,利用训练的参数可以对任意输入图像进行测试了。 阅读详情

原理

  • 在深度学习中,为了防止过拟合,被切分出来的验证集用来停止训练,但木有用于训练而导致浪费
  • 本文尝试训练集停止训练后,验证集加入训练,并用多组参数进行实验

Python极简算法

图像识别示例

from keras.datasets import cifar10  # 小图像10分类
from keras.utils import to_categorical  # 独热码
from keras.models import Sequential  # 顺序模型
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from keras.callbacks import EarlyStopping
from sklearn.model_selection import train_test_split

# 超参
verbose = 2  # 训练过程打印
batch_size = 256  # 批大小
patience = 1  # 没有进步的轮数
callbacks = [EarlyStopping('val_acc', patience=patience)]
# 读数据
(x1, y1), (x2, y2) = cifar10.load_data()
x1, x2 = x1 / 255, x2 / 255  # 像素值→[0,1]
y1 = to_categorical(y1, 10)
y2 = to_categorical(y2, 10)


def experiment(validation_size=.1):
    # 验证集切分
    x11, x12, y11, y12 = train_test_split(x1, y1, test_size=validation_size)
    # 建模
    model = Sequential()
    for i in (32, 64):
        model.add(Conv2D(i, (3, 3), padding='same', activation='relu'))
        model.add(Conv2D(i, (3, 3), padding='same', activation='relu'))
        model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Flatten())
    model.add(Dense(512, activation='relu'))
    model.add(Dense(10, activation='softmax'))
    model.compile('adam', 'categorical_crossentropy', ['acc'])  # 编译
    # 训练、评估
    h = model.fit(x11, y11, batch_size, 999, verbose, callbacks, validation_data=(x12, y12))
    print(validation_size, model.evaluate(x2, y2, batch_size, verbose))
    # 验证集加入训练、评估
    model.fit(x12, y12, batch_size, len(h.history['acc'])-patience, verbose)
    print(model.evaluate(x2, y2, batch_size, verbose))


experiment(.1)
experiment(.2)
experiment(.3)
experiment(.4)
experiment(.5)
experiment(.6)
experiment(.7)
experiment(.8)
experiment(.9)

文本分类示例

from gensim.models import Word2Vec
from keras.utils import to_categorical
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense, GRU
from keras.callbacks import EarlyStopping
from sklearn.model_selection import train_test_split
from jieba import cut
from data10 import load_xy  # https://download.youkuaiyun.com/download/Yellow_python/12862983

maxlen = 200  # 序列长度
batch_size = 256  # 每批数据量大小
verbose = 0  # 训练过程展示
callbacks = [EarlyStopping('val_acc', patience=1)]  # 没有进步的训练轮数
C = ['science', 'car', 'finance', 'sports', 'military', 'medicine', 'entertainment', 'politics', 'education', 'fashion']
num_classes = len(C)

# 读数据
x, (x1, x2, y1, y2) = load_xy()
y1 = to_categorical([C.index(i) for i in y1], num_classes)
y2 = to_categorical([C.index(i) for i in y2], num_classes)
# 词向量
wv = Word2Vec([list(cut(t)) for t in x], window=7, sg=1).wv
vectors = wv.vectors
w2i = {w: i for i, w in enumerate(wv.index2word)}
# pad
x1 = pad_sequences([[vectors[w2i[w]] for w in cut(t) if w in w2i] for t in x1], maxlen, dtype='float')
x2 = pad_sequences([[vectors[w2i[w]] for w in cut(t) if w in w2i] for t in x2], maxlen, dtype='float')


def experiment(validation_size=.1):
    # 训练数据、分词
    x11, x12, y11, y12 = train_test_split(x1, y1, test_size=validation_size, random_state=7)
    # 建模
    model = Sequential()
    model.add(GRU(64))
    model.add(Dense(units=num_classes, activation='softmax'))
    # 训练
    model.compile('adam', 'categorical_crossentropy', ['acc'])
    history = model.fit(x11, y11, batch_size, 99, verbose, callbacks, validation_data=(x12, y12))
    # 预测
    print(model.evaluate(x2, y2, batch_size, verbose), validation_size, len(history.history['acc']))
    # 验证集加入训练
    model.fit(x12, y12, batch_size, len(history.history['acc'])-1, verbose)
    print(model.evaluate(x2, y2, batch_size, verbose))


experiment(.1)
experiment(.2)
experiment(.3)
experiment(.4)
experiment(.5)
experiment(.6)
experiment(.7)
experiment(.8)
experiment(.9)

结果及结论

附1组结果

结论

图像识别结果有提升,非常不稳定但可控,建议在选择10%作为验证集并在训练结束后加入至少1次
文本分类结果有明显提升,不稳定但可控
无论哪种分类,训练集结束后,进行至少一轮验证集,能有效提升模型准确率

机器学习入门课程(2)—— 分类问题(决策树、贝叶斯、VSM、逻辑回归、集成学习) 分类问题 分类问题是监督学习的一个核心问题,它从数据中学习一个分类决策函数或分类模型(分类器),对新的输入进行输出预测,输出变量取有限个离散值。 包括二分类问题/多分类问题。 算法:决策树、贝叶斯、支持向量机SVM、逻辑回归 一 决策树 决策树:树结构,每个非叶节点表示一个特征属性,每个分支边代表这个特征属性在某个值域上的输出,每个叶节点存放一个类别。 决策过程:从根节点开始,测试待分类项中... 阅读详情

相关推荐

TensorFlow入门指南:从环境搭建到跑通第一个深度学习模型

在人工智能和深度学习领域,框架选择一直是初学者关注的焦点。深度学习框架不仅封装了张量运算、自动求导和神经网络构建等核心机制,更将数据处理、模型训练、评估与部署串联成完整链路。TensorFlow作为生产环境中广泛使用的框架,其Keras高层接口对新手友好,同时具备强大的工程化能力。掌握TensorFlow的核心价值,在于理解数据与模型在整条流水线中的流动逻辑,而非死记API。从虚拟环境配置、依赖检查到利用Fashion MNIST数据集完成图像分类任务,本文提供了一套可复现的实践路径。面对安装报错、形状不匹

dengjuanshou7445的博客 418

训练集、测试集与验证集的含义

训练集、测试集与验证集的含义 1. 定义 (1)在数据量(及标签)很充足的情况下: 如果我们自己已经有了一个大的标注数据集,想要完成一个有监督模型的测试,那么通常使用均匀随机抽样的方式,将数据集划分为训练集、验证集、测试集,这三个集合不能有交集,三个集合符合同分布。常见的比例是可以上网看看。 (2)在数据量(及标签)很少的情况下: 比如在做比赛时,官方只提供了一个标注的数据集(作为训练集)以及一个...

gongliming_的博客 3622

51c自动驾驶~合集57

多目标多头蒸馏模块:我们看到轨迹模仿学习之后的轨迹还过了其他的MLP,这就是其他头,它的目标也是不一样的,第一个是跟碰撞相关的,第二个是跟行驶区域相关的,第三个是跟舒适度相关的,也就是说不同的评判指标都有一个teacher,之前的模仿学习就是人类的teacher,那么这些teacher是怎么来的呢?本文作者提出的新的范式,就是规划模块是多模的输出,同时,目标也是多样性的,即不仅是GT的轨迹也同时引入了更多的正样本,由不同的专家给出的。还是那句话,小米汽车的成功,是小米价值观,小米模式,和小米方法论的成功。

whaosoft~aiotの开发板商城 2354

训练集、验证集、测试集以及交验验证的理解

在人工智能机器学习中,很容易将“验证集”与“测试集”,“交叉验证”混淆。 一、三者的区别 训练集(train set) —— 用于模型拟合的数据样本。 验证集(development set)—— 是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。 在神经网络中, 我们用验证数据集去寻找最优的网络深度(nu...

kieven2008的专栏 20万+

工业级机器学习十大实战陷阱与破局方法

机器学习模型在真实业务场景中失效,往往不是算法本身的问题,而是数据预处理、特征工程、评估指标等环节脱离了算力约束、业务闭环与人机协作三大刚性边界。本文聚焦工业落地中的核心矛盾——如缺失值处理实为责任界定、异常值常是新业务信号、阈值设定本质是权力再分配——系统揭示从数据清洗到模型回滚的十层认知滤镜。结合IoT时序预测、医疗影像诊断、金融反欺诈等27个交付项目经验,强调‘领域知识即建模前提’‘业务语义重定义时间’等关键原则,为Kaggle选手、中级算法工程师及技术负责人提供可审计、可解释、可灰度上线的工程化路径

weixin_33749242的博客 456

构建可解释、可干预的AI辅助交易工作流

AI交易并非预测市场涨跌的黑箱工具,而是面向金融场景的智能增强系统。其核心原理在于分层解耦——感知层处理数据噪声,认知层建模子任务状态(如HMM识别震荡/单边市),决策层由人类规则引擎主导。技术价值体现在提升策略可解释性、降低人为情绪干扰、实现动态环境下的模型保鲜。典型应用场景包括分钟级量价信号识别、波动率预测、舆情情绪聚合与仓位风险动态调整。本文聚焦Python工程实践,围绕数据清洗、特征工程、模型选型与人机协同机制,提供一套真实可用、可迭代、可干预的AI辅助交易工作流。

weixin_30855099的博客 497

pytorch神经网络学习笔记04----包含训练集、验证集、测试集的过程代码

包含训练集、验证集、测试集的模板代码

方脸大公鸡的博客 3930

机器学习实验四:贝叶斯分类器

实验数据为来自 UCI 的鸢尾花三分类数据集 Iris Plants Database。数据集共包含 150 组数据,分为 3 类,每类 50 组数据。每组数据包括 4 个参数和 1 个分类标签,4 个参数分别为:萼片长度 sepal length、萼片宽度 sepalwidth、花瓣长度 petal length、花瓣宽度 petal width,单位均为厘米。分类标签共有三种,分别为 Iris Setosa、Iris Versicolour 和 Iris Virginica。

magic171的博客 2659

【独家首发】Matlab实现天鹰优化算法AO优化Transformer-LSTM实现负荷数据回归预测

摘要:近年来,随着电力系统的智能化发展,负荷预测成为电力系统安全运行的关键。针对负荷数据非线性、非平稳等特点,本文提出了一种基于天鹰优化算法(AO)优化的Transformer-LSTM模型,用于负荷数据回归预测。该模型首先利用Transformer提取时间序列数据中的长期依赖关系,并将其作为LSTM模型的输入,有效提高模型的预测精度。其次,采用AO算法对Transformer-LSTM模型参数进行优化,提升模型的泛化能力。

qq_59747472的博客 978

Camera tuning flow相机调试流程

相机调试流程分为三大模块:ProcessRaw处理原始数据(黑电平校正、阴影校正),3A实现自动控制(曝光/对焦/白平衡),ISP进行图像精加工(伽马校正、锐化降噪、色彩处理)。三个阶段环环相扣,前阶段为后阶段提供基础,最终输出画质优良且风格化的图像。

weixin_64706696的博客 1230

一步一步教你写股票走势图——K线图一(概述)

股票分时图部分已经开发完毕,受到了广大开发者的好评!界面、功能都挺完美,解决了好一些MP开发者的问题,博主甚是欣悦,更有动力去开源K线图。这里说一下,如果有问题直接留言或者发邮件,github上个人信息有邮件,我看到基本都会回复,博主不加qq的,体谅O(∩_∩)O。分析好了,废话不多说,我们分析下K线图吧,首先我们看下自选股K线图的效果吧效果还是很赞的,经过分时图的研究后,博主越来越确信自选股用的应

体验Android编程之美 3万+

机器学习分类算法全解析:从原理到实战应用指南

分类是监督学习的核心任务,旨在基于已知标签数据构建模型,以自动将新数据划分到预定义类别。其基本原理是通过学习特征与类别标签之间的映射关系,形成决策边界。这项技术的核心价值在于将混乱数据转化为清晰洞察,是实现自动化决策与智能识别的关键。在工程实践中,分类技术广泛应用于垃圾邮件过滤、金融风控、医疗诊断及图像识别等场景。面对诸如**类别不平衡**和**过拟合**等常见挑战,需采用特征工程、算法调优及集成学习等策略进行应对。本文系统梳理了从逻辑回归、决策树到梯度提升树等经典与前沿算法的原理及适用场景,为构建高效分类

Hi, Sun 424

宇树机器人G1二次开发:导览、起始点、目的地与完整示例

通过宇树G1 SDK的导航接口,开发者可以高效地实现机器人的自主移动功能。连接 -> 设置目标点 -> 发送命令 -> 监控状态。本文提供的完整示例涵盖了从环境搭建到代码实现的全部步骤,并解释了起始点、目的地等关键概念。开发者可以在此基础上,结合多目标点巡逻、动态避障(需高级配置)等功能,构建更复杂的机器人应用。建议读者先在小范围、熟悉的平坦环境中测试,成功后再逐步扩展到更复杂的场景。

m0_52645558的博客 751

全网首发!大模型工程师成长路线:6大阶段拆解+50个企业级案例(附面试题库)

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。评估大型语言模型(LLM)是管道中一个被低估的部分,这一过程既耗时又具有一定的可靠性。• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

2401_84494441的博客 1438

高通ISP模块全解析:从Raw到JPEG的18个关键处理步骤(附避坑指南)

本文全面解析高通ISP模块从Raw到JPEG的18个关键处理步骤,涵盖原始数据预处理、色彩科学处理链、画质增强与降噪等核心环节。通过实战调优经验,揭示ISP架构中的技术原理与工程实践要点,帮助开发者避免常见问题,提升移动影像处理质量。

weixin_30399155的博客 360

BAPI_OUTB_DELIVERY_CHANGE扩展指南:利用EXTENSION2与SMOD_V50B0001实现自定义字段更新

本文详细解析了如何利用BAPI_OUTB_DELIVERY_CHANGE的EXTENSION2参数与增强点SMOD_V50B0001,在不修改标准代码的前提下,安全、标准地更新SAP交货单的自定义字段。通过清晰的步骤指南和实战代码示例,帮助开发者掌握通过增强字段实现定制化业务需求的完整流程与调试技巧。

fanta的博客 451

TensorFlow实战指南:从模型搭建到部署全流程解析

深度学习框架是构建智能应用的基石,它抽象了张量运算、自动微分与计算图等底层原理,让开发者无需从零手写反向传播即可高效训练神经网络。TensorFlow作为端到端的工业级框架,凭借其完整的Keras高级API、灵活的动态图模式与标准化的SavedModel导出体系,覆盖了从数据预处理、模型训练到跨平台部署的完整生命周期。无论是图像识别、文本情感分析还是推荐系统,TensorFlow都能提供工程化的解决方案与成熟的性能优化策略。本文基于一线实战经验,从环境配置、数据管道构建、模型训练调参到部署上线的全流程展开,

weixin_29032337的博客 252

在 Linux/Debian/Ubuntu 上使用 Brasero 刻录光盘

在 Ubuntu 系统中,Brasero 是一个非常方便的光盘刻录工具。无论是创建数据光盘、音频光盘还是刻录光盘镜像文件,Brasero 都能轻松胜任。本文将介绍如何在 Ubuntu 上安装和使用 Brasero 进行光盘刻录。

I AM COMING BACK... 3553

时间序列预测的27个决策关键概念地图

时间序列预测不是纯数学建模,而是面向业务交付的系统性工程决策过程。其核心在于理解数据特性、诊断模型亚健康状态、嵌入业务逻辑并验证真实决策价值。从平稳性、缺失值语义、可预测性量化等基础概念,到残差自相关陷阱、预测区间退化、时间切分因果律等高发故障点,这些概念构成了连接算法输出与业务信任的关键桥梁。尤其在制造业、零售、能源等强周期、多源异构场景中,忽略‘循环平稳性检验’或‘事件日历编码规范’等概念,极易导致上线后指标持续恶化。本文提炼出27个经上百项目验证的‘决策临界点’概念,覆盖问题定义、诊断排查、业务增强与

weixin_34327223的博客 389

【网络】Ikuai中如何添加/更换虚拟机(图文)

Ikuai 添加虚拟机教程

qq_20623849的博客 6541

【人工智能论文发表】基于医学病例文本和多模态大模型的医疗影像分割方法研究

摘要:本研究提出MMS-Former,一种基于级联多模态Transformer的文本引导医学图像分割框架。该模型创新性地将临床文本信息深度融入图像分割全过程,通过SwinUNETR提取视觉特征,ClinicalBERT编码病历文本,并在解码器的每个上采样阶段通过交叉注意力模块实现多级文本特征融合。实验表明,相比纯视觉模型,MMS-Former在Dice系数和IoU指标上分别提升3%以上,在处理边界模糊目标时表现尤为突出。模型还设计了结合Dice损失和图文对比损失的复合目标函数,确保分割精度与语义对齐。代码实

u012133341的博客 142

训练集,验证集,测试集(以及为什么要使用验证集?)(Training Set, Validation Set, Test Set)

对于训练集,验证集,测试集的概念,很多人都搞不清楚。网上的文章也是鱼龙混杂,因此,现在来把这方面的知识梳理一遍。让我们先来看一下模型验证(评估)的几种方式。 在机器学习中,当我们把模型训练出来以后,该怎么对模型进行验证呢?(也就是说怎样知道训练出来的模型好不好?)有以下几种验证方式: 第一种方式:把数据集全部作为训练集,然后用训练集训练模型,用训练集验证模型(如果有多个模型需要进行选择,那么最后选出训练误差最小的那个模型作为最好的模型) 这种方式显然不可行,因此训练集数据已经在模型拟合时使..

jinchenpeng的博客 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python机器学习——分类模型评估 & 分类算法(k近邻,朴素贝叶斯,决策树,随机森林,逻辑回归,svm)

分类模型评估 & 分类算法(k近邻,朴素贝叶斯,决策树,随机森林,逻辑回归,svm)

Arya的博客,专注后端领域 6535

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python 分类问题研究-朴素贝叶斯模型

【实验目的】 1.掌握常见机器学习分类模型思想、算法,包括Fisher线性判别、KNN、朴素贝叶斯、Logistic回归、决策树等; 2.掌握Python编程实现分类问题,模型评价指标、计时功能、保存模型。 【实验要求】 理解Python在分类问题中的评价指标等细节操作; 掌握本章讲授的分类问题的Python编程操作。 【实验过程】(必要的实验步骤、绘图、代码注释、数据分析) 实验步骤 1、读入数据 2、数据预处理 3、数据分析方法介绍 4、编程实现数据分析方法,含代码注释 5、重要结果的图表绘制 6、

gezongbo的博客 1142

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python零基础做机器学习实验(决策树/朴素贝叶斯/神经网络/支持向量机/随机森林/判别分析)

import numpy as np import pandas as pd from sklearn import tree from sklearn.naive_bayes import GaussianNB from sklearn.neural_network import MLPClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from sklearn.gaussian

情不知所起一往而深 3万+

验证集混入训练数据:我的深度学习入门课救回了99%准确率的假象

当我把验证集混入训练数据时,测试准确率高达99%的模型上线就崩。通过亚马逊云科技深度学习入门课程,才明白数据隔离的核心原则。分享从数据拆分到线上监控的全套修正方案,适合正在入门AI开发的工程师避坑。

weixin_47315004的博客 15
上一篇: 标注数据较少时【长文本分类任务】的半监督学习Python算法
下一篇: Python文本分类总结:贝叶斯,逻辑回归,决策树,随机森林,SVM,词向量,TFIDF,神经网络,CNN,LSTM,GRU,双向RNN,LDA
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值