自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 DAY54 CBAM注意力

CBAM是一种轻量级注意力模块,结合通道和空间注意力机制提升特征表达能力。通道注意力通过双重池化和共享MLP学习通道重要性,解决"看什么"问题;空间注意力通过通道压缩和大卷积核聚焦关键区域,解决"在哪里"问题。该模块具有双重维度、即插即用和高效性三大特点,能显著提升CNN性能而仅增加少量参数,广泛应用于分类、检测等任务。

2026-01-21 20:27:26 284

原创 DAY53 随机函数与广播机制

本文介绍了PyTorch中张量操作和CNN计算的核心要点:1)使用torch.randn()生成不同维度的随机张量;2)卷积/池化层输出尺寸的计算公式;3)广播机制的工作原理,包括维度对齐规则和自动扩展方式。重点说明了张量形状匹配原则,以及不同维度张量间进行算术运算时的自动广播过程。这些概念对理解CNN模型的数据处理和维度变换至关重要。

2026-01-18 12:38:01 627

原创 DAY52 通道注意力(SE注意力)

本文探讨了CNN中不同层次的特征提取机制及注意力机制的应用。研究表明:1)CNN浅层提取边缘纹理等低级特征,深层聚焦语义理解;2)注意力机制通过动态权重实现信息筛选,包含自注意力、通道注意力等多种形式;3)SE模块通过压缩-激发-重加权实现通道注意力,有效增强关键特征;4)热力图可视化技术可解析模型决策依据,验证其是否关注有效区域。实验通过三层次CNN架构和SE模块的代码实现,结合特征图可视化,证实了深度网络从局部到全局的特征抽象过程。该研究为理解CNN工作机制和模型可解释性提供了实践参考。

2026-01-16 16:43:49 704

原创 DAY51 TensorBoard 使用介绍

TensorBoard是2015年随TensorFlow发布的深度学习可视化工具,后扩展支持PyTorch。其核心原理是通过SummaryWriter记录训练日志(如损失值、模型结构等),并在网页端实时展示。常见操作包括:记录标量数据(add_scalar)、模型图(add_graph)、图像(add_image)等,通过终端命令启动可视化界面。在CIFAR-10实验中,TensorBoard可有效监控MLP和CNN的训练过程,如分析损失曲线、学习率调整和错误样本。实战示例展示了如何用TensorBoard

2026-01-13 19:05:21 1150

原创 DAY50复习日

这是练习使用预训练模型(如 VGG16, ResNet)进行迁移学习(Transfer Learning)的最佳战场。二分类交叉熵损失函数(Binary Crossentropy)、数据流加载(ImageDataGenerator)。、**数据增强(Data Augmentation)**以防止过拟合。Dogs vs. Cats —— 经典的二分类问题。图片的分辨率不一,背景复杂,更接近现实项目。

2026-01-11 21:18:14 456

原创 DAY49 预训练模型

摘要:预训练是通过迁移学习利用大规模数据集训练好的模型参数进行初始化,提升模型收敛速度并避免局部最优。主流预训练模型包括CNN架构(如ResNet、MobileNet)、Transformer类(ViT等)和自监督模型(MoCov3等)。发展历程从早期LeNet到深度网络时代,解决了网络退化等问题。预训练策略包括加载权重、适配输入输出和阶段式训练(先冻结骨干网络再微调)。代码实战显示,使用预训练ResNet18在CIFAR-10上微调40轮即可达到86.30%准确率,显著优于从零训练。

2026-01-09 20:24:04 817

原创 DAY48 Grad-CAM与Hook函数

本文介绍了三种深度学习编程中的关键技术:1.回调函数:用于异步操作和事件处理,通过注册函数在特定条件触发时执行;2.lambda函数:匿名函数,适用于需要临时简单函数的场景;3.PyTorch钩子函数:包括张量钩子和模块钩子,用于在不修改模型结构的情况下获取或修改中间层信息。文章特别以Grad-CAM为例,展示了钩子函数如何通过提取特征图和梯度,生成热力图来解释CNN模型的决策依据,可视化模型关注的关键图像区域。这些技术为深度学习模型开发和调试提供了重要工具。

2026-01-07 21:52:43 309

原创 DAY47 简单CNN

本文介绍了深度学习中CNN的关键技术要点:1.数据增强方法(RandomFlip/Crop/ColorJitter)及其训练/测试集应用差异;2.CNN标准架构,包含特征提取(Conv-BN-ReLU-Pool堆叠)和分类器(Flatten-Linear)两阶段;3.BN层的作用原理及使用规范(Conv→BN→ReLU);4.特征图概念及调度器(StepLR/CosineLR)的学习率调整策略。全文系统梳理了CNN从数据预处理到网络设计的核心要素,为模型构建提供了规范化指导。

2026-01-06 18:45:55 824

原创 DAY46训练和测试的规范写法

本文介绍了深度学习模型训练与测试的关键规范。训练和测试过程应封装为独立函数,保持代码整洁且可复用,其中训练函数负责前向传播、损失计算和参数更新,测试函数则专注于性能评估。全连接层处理图像时需进行展平操作(Flatten),将多维特征转化为一维向量。Dropout操作在训练时随机丢弃神经元以防止过拟合,测试时则关闭以确保稳定预测。这些技术共同构建了规范的深度学习开发流程,实现了逻辑与数据的解耦。

2026-01-05 18:58:57 1064

原创 DAY45 图像数据与显存

本文介绍了深度学习训练中的关键要素。首先说明图像数据格式在PyTorch中的表示方式(通道优先),以及灰度图与彩色图的形状差异。其次详细解析显存占用的四个主要部分:模型参数与梯度、优化器状态、批量数据和中间变量,其中优化器选择(如Adam)会显著影响显存占用。最后探讨BatchSize对训练的影响,包括显存限制、梯度稳定性和计算效率的权衡,建议从16开始逐步调整至硬件允许值的80%左右。这些因素共同决定了模型训练的可行性和效率。

2026-01-04 13:06:35 1624

原创 DAY44 Dataset和Dataloader类

PyTorch数据加载机制解析:Dataset类定义数据源及预处理逻辑,需实现__len__和__getitem__方法;DataLoader负责批处理、打乱和多进程加速数据加载。以MNIST和CIFAR-10为例,MNIST包含7万张28x28灰度手写数字,CIFAR-10含6万张32x32彩色图。数据加载流程为:硬盘文件→Dataset处理单条数据→DataLoader打包批次→模型训练。示例代码展示了CIFAR-10数据集的加载与可视化方法,包括维度转换和图像显示技巧。

2026-01-03 17:19:11 1337

原创 DAY43 早停策略和模型权重的保存

本文介绍了深度学习模型训练中的三个关键技术:1. 过拟合判断方法:通过同步监控训练集和测试集的Loss曲线变化,当训练Loss持续下降而测试Loss不再改善或上升时,表明出现过拟合。2. 模型保存与加载的三种方式:推荐仅保存权重的轻量级方法,以及保存完整模型和检查点的方法,分析了各自的优缺点。3. 早停策略:设置容忍阈值(Patience),当测试性能连续多次未提升时提前终止训练,防止过拟合并节省计算资源。这些方法为模型训练提供了实用的监控和优化手段。

2026-01-01 16:47:50 109

原创 DAY42 复习日

本文深入解析了PyTorch中nn.Module的功能架构,将其公开方法归纳为五大核心类别:状态切换(train/eval模式)、设备管理(CPU/GPU迁移)、参数管理(参数获取与保存)、层级结构(模型嵌套检查)和执行逻辑(前向传播)。通过继承nn.Module,模型自动获得这些关键功能,开发者只需专注实现__init__和forward方法。文中结合信用评分神经网络实例,展示了如何利用这些方法进行模型训练、评估和设备迁移,并强调了直接调用model()而非forward()的重要性。nn.Module作

2025-12-31 18:29:43 98

原创 DAY41 模型可视化与推理

本文介绍了深度学习模型开发的三个关键技巧:1) 三种模型可视化方法:print()查看基础结构、torchinfo获取宏观参数信息、权重分布直方图诊断微观问题;2) tqdm进度条的两种写法(自动/手动)及其适用场景,特别是高频训练时的优化策略;3) 推理阶段的标准操作流程,包括model.eval()、torch.no_grad()和批处理维度处理。通过一个灵活的MLP模型实验对比了不同隐藏层大小(4/10/64)对训练损失和准确率的影响,展示了如何结合这些技巧进行模型开发与性能分析。

2025-12-30 17:26:46 501

原创 DAY40 GPU训练及类的call方法

摘要:本文介绍了CPU和GPU在深度学习中的关键性能指标及使用方法。CPU性能取决于架构代际、核心数和线程数,影响数据预处理速度;GPU性能主要看显存容量、级别和架构代际,决定模型训练可行性及效率。文中强调GPU训练需权衡数据传输与计算成本,并解释了PyTorch中类的__call__方法机制,指出应避免直接调用forward()以保证框架功能完整性。这些指标和原理对优化深度学习任务具有重要指导意义。

2025-12-29 19:19:54 233

原创 DAY39 MLP神经网络的训练

本文介绍了多层感知机(MLP)的基础概念和搭建流程。基础概念部分详细讲解了梯度下降、激活函数、损失函数、反向传播、优化器和神经网络的工作原理及其配合方式。搭建流程部分包括数据预处理、模型定义、损失函数和优化器设置、训练循环以及可视化loss过程五个关键步骤。通过比喻和通俗解释,帮助读者理解神经网络训练的核心机制,包括如何通过前向传播和反向传播来优化模型参数,最终实现模型性能的提升。

2025-12-28 21:10:19 1250

原创 DAY38 官方文档的阅读

摘要:本文介绍了官方文档的检索与使用方法,重点阐述了GitHub仓库、PyPI页面和ReadTheDocs等核心检索途径。在文档使用方面,强调了版本对应的重要性,建议通过升级确保文档与本地包版本一致。针对类文档阅读,提出了三个关键关注点:实例化参数、方法参数和返回值。以RandomForestClassifier为例,详细说明了参数设置和函数调用方法。最后解释了高级封装库(如pdpbox)调用底层绘图库(如plotly)的原理,并提供了图表修改示例。文末附有完整的代码实现,展示了TargetPlot、PDP

2025-12-27 22:06:43 87

原创 DAY37 文件的规范拆分与写法

本文介绍了机器学习项目的工程化规范,重点包括:1)规范的文件命名,按照机器学习生命周期划分功能模块;2)分层目录结构,将源代码、数据、模型等分类存放;3)代码拆分原则,按流程分离关注点并提取公共功能;4)编码规范,包括UTF-8声明和类型注解。文章还以心脏病预测项目为例,展示了标准的项目结构,并说明可复用代码的组织方式。这些规范能显著提升代码的可维护性和复用性,帮助开发者从脚本编写进阶到工程化开发。

2025-12-26 08:47:34 124

原创 python中函数与面向对象编程知识梳理

本文系统梳理了Python面向对象编程的核心知识点,分为四个渐进阶段:1)基础构建(类定义、初始化方法);2)OOP三大支柱(继承、封装、多态);3)工厂模式与构造技巧(类方法、静态方法);4)高级特性(装饰器、魔法方法等)。通过一个综合案例SmartShape,展示了如何将类装饰器、属性控制、工厂模式、多态继承和运算符重载等特性有机整合。该案例实现了动态标签添加、安全属性访问、多态面积计算以及形状相加等面向对象编程的典型应用,完整呈现了Python类从基础到进阶的核心技术脉络。

2025-12-25 20:21:00 912

原创 DAY36 模块和库的导入

本文介绍了Python导入库的三种方式:全量导入(import module)、指定导入(from module import function)和别名导入(import module as alias),并分析了各自的优缺点。接着讲解了如何导入自定义模块,包括同级目录和子目录的导入方法。最后重点解析了Python的路径搜索机制(sys.path),指出常见导入错误的原因,并提供了通过动态添加根目录到sys.path的解决方案。核心建议是使用os.path.abspath(file)和sys.path.ap

2025-12-25 19:38:54 161

原创 DAY35复习日:类的装饰器

本文介绍了Python装饰器在类中的应用,阐述了动态修改与静态编码的区别。装饰器通过"外部修改"的方式,在不改动类源码的情况下为类添加属性和方法,体现了"解耦"思想。文章详细讲解了类装饰器的实现步骤,包括定义装饰器函数、动态添加类属性和方法,并与传统内部定义方法和外部Monkey Patching方式进行了对比。装饰器将零散的外部修改封装成可复用工具,遵循"对修改封闭,对扩展开放"的设计哲学,展现了Python语言的灵活性。通过钢铁侠战衣的比喻,生

2025-12-24 18:15:41 131

原创 DAY34类的定义和方法

本文介绍了Python面向对象编程(OOP)的核心概念:1. 类与对象:类作为蓝图,对象是实例。2. 类的定义与初始化(__init__方法)。3. 继承机制实现代码复用,支持方法重写。4. 封装通过私有属性保护数据安全。5. 多态使不同对象对同一方法产生不同行为。文章通过汽车、银行账户等实例演示了OOP的四大特性(封装、继承、多态、抽象)及其应用场景,展示了Python中类定义、方法创建、属性访问等基础语法。

2025-12-23 19:03:34 1004

原创 DAY33函数专题 2:装饰器

Python装饰器是一种优雅的语法糖,用于在不修改原函数代码的情况下动态添加功能。其核心思想是遵循开放-封闭原则,实现业务逻辑与辅助功能(如日志、计时)的分离,提高代码复用性。标准装饰器写法采用三层结构:定义装饰器函数→创建内部包装函数→返回包装函数,需特别注意在wrapper中返回原函数的执行结果(return result),否则会丢失返回值。通过@wraps(func)可保留原函数的元数据。典型应用场景包括日志记录、性能监测等,体现了面向切面编程(AOP)思想。

2025-12-22 22:00:35 120

原创 DAY32函数专题 1:函数定义与参数

本文系统介绍了Python函数的核心概念:1. 函数定义与返回值机制,使用def关键字和return语句;2. 变量作用域区分全局/局部变量,强调global关键字的作用;3. 参数类型包括位置参数、默认参数和不定参数(args);4. 参数传递方式着重讲解关键词参数(**kwargs)及其字典打包特性;5. 明确参数定义顺序规则:位置→默认→args→kwargs。通过收纳箱比喻形象区分*args(无名元组)和kwargs(有名字典)的本质差异,并提供实用场景建议和记忆口诀。

2025-12-20 15:50:40 327

原创 DAY31 异常处理

本文介绍了Python中的异常处理机制及其应用。主要内容包括:1)异常处理的基本概念,通过生活类比说明其作用;2)Python调试中的三类错误:语法错误、运行时错误和逻辑错误;3)try-except机制及其精确捕获和多错误处理;4)完整的try-except-else-finally机制,强调else和finally的独特作用。文章通过具体示例展示了异常处理的实际应用,帮助读者理解如何有效处理程序运行中的错误情况。

2025-12-19 11:28:40 85

原创 DAY30 元组和OS模块

本文介绍了Python编程中的三个核心概念:元组、可迭代对象和os模块。元组是不可变的序列类型,适合存储不应修改的数据;可迭代对象是支持迭代操作的数据结构,包括列表、字典等;os模块提供了跨平台的文件和目录操作功能。文章通过代码示例展示了这些概念的实际应用,包括元组定义与解包、可迭代对象判断与使用,以及os模块的常见文件操作。这些基础知识的掌握对Python编程至关重要。

2025-12-18 17:36:51 115

原创 DAY29 pipeline管道

本文介绍了Scikit-Learn中的管道(Pipeline)技术,主要包括三大核心概念:估计器(Estimator)、转化器(Transformer)和管道(Pipeline)。估计器用于学习数据参数,转化器在参数学习基础上还能转换数据,管道则将多个处理步骤串联起来。重点阐述了管道工程的价值:防止数据泄露、代码整洁复用和便于调参。对比了Pipeline(串行处理)和ColumnTransformer(并行处理)的区别,并提供了一个通用管道构建函数示例,该函数可自动处理数值型和类别型特征,包含缺失值填充、数

2025-12-16 19:14:54 120

原创 DAY28 复习日

kaggle泰坦尼克号。

2025-12-16 19:13:58 94

原创 DAY27常见的降维算法

降维技术通过减少数据特征数量,同时保留关键信息,广泛应用于机器学习和数据分析。主要应用场景包括处理维数灾难、消除多重共线性、加速计算、数据可视化和去噪。常见降维算法包括PCA(无监督线性)、LDA(有监督线性)和t-SNE(无监督非线性)。PCA适合特征提取和压缩,LDA适用于分类任务,t-SNE擅长数据可视化。这些技术在计算机视觉、自然语言处理、推荐系统等领域发挥重要作用,是数据预处理的关键步骤。

2025-12-15 20:00:21 1005

原创 DAY26奇异值SVD分解

SVD(奇异值分解)是一种强大的数据降维工具,它通过将复杂数据分解为三个矩阵(旋转-拉伸-再旋转),提取出按重要性排序的特征成分。本文通过棱镜类比形象说明SVD工作原理:将原始数据(白光)分解为重要程度不同的成分(彩虹色)。核心应用包括数据压缩(保留关键奇异值)、降噪(剔除小奇异值)以及推荐系统等场景。实验部分演示了在心脏病预测任务中,随着保留特征数增加,模型准确率和信息保留量的变化趋势,验证了SVD在保持主要信息的同时实现高效降维的能力。

2025-12-14 22:58:20 449

原创 DAY25常见的特征筛选算法

本文系统介绍了6种特征筛选算法:方差筛选(过滤法)、皮尔逊相关系数(过滤法)、Lasso(嵌入法)、树模型重要性(嵌入法)、SHAP(模型无关解释方法)和递归特征消除RFE(包装法)。通过心脏病数据集(303样本13特征)的对比实验发现,皮尔逊相关和RFE表现最佳(100%准确率),树模型重要性在特征精简(7个)与精度(98.05%)间取得平衡。方差筛选因数据波动大未剔除特征,Lasso保留了11个特征(99.03%)。SHAP虽解释性强但计算量大。结果表明:线性关系显著时皮尔逊相关高效,需高精度可选用RF

2025-12-13 22:05:41 1077

原创 DAY24推断聚类后簇的类型

聚类。

2025-12-12 22:58:40 414

原创 DAY23常见聚类算法

聚类的指标。

2025-12-11 22:31:20 113

原创 DAY22 Kaggle平台的使用

Python的glob模块提供了强大的文件路径匹配功能,支持通配符和递归搜索。它比os.listdir更易用,能快速查找符合规则的文件路径,如获取Kaggle数据集中的所有图片。使用**配合recursive=True可实现递归搜索多层子目录。需要注意的是,glob返回结果无序,建议使用sorted()排序。对于海量文件,glob.iglob()可节省内存,返回迭代器而非完整列表。这些特性使glob成为处理文件路径的高效工具。

2025-12-09 22:02:30 137

原创 DAY21 其他解释性方法

模型解释性。

2025-12-08 23:12:07 622

原创 DAY 20深入理解SHAP图

利用回归数据实现shap可解释性分析。

2025-12-07 23:21:05 92

原创 DAY19 评价类问题

【代码】DAY19 评价类问题。

2025-12-06 22:15:33 126

原创 DAY18 回归问题与置信区间

【代码】DAY18 回归问题与置信区间。

2025-12-05 23:03:29 113

原创 疏锦行代码打卡复习笔记

用于数学计算。用于处理文本。通用的容器,随时可以改。安全的容器,定好就不能改。像查字典一样,通过 Key 快速找 Value。用于去重和数学运算。debugger调试。

2025-12-05 11:41:16 494

原创 DAY17 多分类问题

红酒数据集机器学习多分类流程。

2025-12-04 21:44:33 186

1_第五章_概率测练习题_答案.pdf

1_第五章_概率测练习题_答案.pdf

2023-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除