
Python篇
文章平均质量分 90
Atticus-Orion
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
程序代码篇---队列应用场景
队列是一种先进先出(FIFO)的数据结构,模拟现实生活中的排队场景。它具有两大基本操作:入队(添加到队尾)和出队(从队头取出)。队列在计算机领域有八大典型应用场景:1)消息队列(如订单系统处理);2)任务调度(如打印机队列);3)广度优先搜索(如疫情溯源);4)数据缓冲(如视频直播);5)订单处理(如电商平台);6)键盘缓冲区;7)呼叫中心;8)网络数据包管理。此外还有优先队列、双端队列、循环队列等变种。队列的核心价值在于维护处理顺序、平衡系统负载、实现组件解耦和流量控制,是计算机世界维持秩序的重要机制。原创 2025-10-04 20:19:02 · 479 阅读 · 0 评论 -
Python篇---命令行参数解析
Python命令行参数解析方法比较: sys.argv - 基础手动方式,直接读取参数列表,适合简单脚本但功能有限。 argparse - Python标准库推荐方案,支持类型检查、帮助文档和复杂参数配置,适合大多数命令行工具开发。 click - 第三方装饰器风格库,语法简洁优雅,特别适合多子命令的复杂CLI应用开发。 选择建议:新手优先学习argparse,追求开发效率可选用click,简单脚本用sys.argv即可。原创 2025-10-04 19:06:00 · 890 阅读 · 0 评论 -
Python篇---字符串解析
本文简单介绍了Python中进行字符串解析的几种方法:parse 库、.split()、正则表达式、字符串切片原创 2025-10-04 18:53:30 · 897 阅读 · 0 评论 -
上位机知识篇---Python结合智能体
百度千帆平台的智能体通过Python可实现高级功能,使其从单纯对话升级为能调用工具、处理数据的全能助手。核心功能包括:1)调用外部API(如天气查询);2)流程自动化(多步骤任务串联);3)批量数据处理;4)实时数据库交互。实现方法:获取API密钥后,通过Python SDK编写调用逻辑,包括工具函数定义、流程编排和错误处理。新手建议从单工具调用入手,逐步增加复杂度,参考官方文档示例代码。这种方式突破了聊天框限制,让智能体兼具思考与执行能力。原创 2025-09-16 00:26:38 · 780 阅读 · 0 评论 -
深度学习篇---GRU的网络结构
本文介绍了如何在PyTorch中实现GRU(门控循环单元)进行文本生成。主要内容包括:1)PyTorch中GRU的基本用法和参数设置;2)完整的文本生成实现流程,包括数据预处理、模型构建(嵌入层+GRU+输出层)、训练和生成;3)GRU与LSTM的关键区别(无细胞状态)、隐藏状态初始化、变长序列处理技巧;4)GRU的优势(参数少、训练快)和避免过拟合的方法。通过根据前几个词续写句子的实例,展示了GRU在序列生成任务中的应用。原创 2025-09-15 09:28:01 · 1006 阅读 · 0 评论 -
深度学习篇---LSTM网络结构
本文介绍了如何在PyTorch中使用LSTM实现文本情感分类任务。主要内容包括:1) LSTM基本用法,解释关键参数和输入输出格式;2) 完整实现流程:数据预处理(文字转数字)、模型搭建(词嵌入+LSTM+分类层)、训练和预测;3) 关键注意事项:输入格式匹配、变长序列处理、过拟合预防等。重点指出LSTM相比RNN多了细胞状态,以及如何正确提取序列特征。通过一个情感分类示例,展示了从数据准备到模型预测的完整过程,并提供了GRU变体的实现思路。原创 2025-09-15 09:00:34 · 1380 阅读 · 0 评论 -
深度学习篇---RNN的网络结构
本文介绍了如何使用PyTorch实现RNN进行文本分类。主要内容包括:1)利用PyTorch的nn.RNN模块构建模型,解释关键参数如input_size、hidden_size等;2)完整实现流程:数据预处理(文本转ID序列)、模型构建(嵌入层+RNN层+分类层)、训练过程;3)关键设计细节,如词嵌入层的作用、使用最后时间步输出的原因等。文章通过情感分析案例,展示了如何将RNN应用于实际任务,并指出LSTM/GRU的替换方法。PyTorch封装了RNN的核心逻辑,开发者只需关注数据准备和模型结构即可。原创 2025-09-14 16:24:15 · 594 阅读 · 0 评论 -
深度学习篇---嵌入编码(Embedding)
嵌入编码(Embedding)是一种将分类数据转换为紧凑数字向量的方法,解决了独热编码在高维稀疏场景下的缺陷。其核心优势包括:1)压缩维度(如万级分类转为50维密集向量);2)保留语义关联(相似分类的向量距离更近);3)动态学习(通过数据训练自动优化向量)。典型应用场景包括文本处理(如Word2Vec)、推荐系统(商品/用户编码)及深度学习模型输入。与独热编码相比,嵌入编码更适合多分类、需关联分析的场景,能显著提升计算效率和模型性能。原创 2025-09-13 08:55:37 · 896 阅读 · 0 评论 -
深度学习篇--- one-hot 独热编码
One-hot独热编码是一种将分类数据转换为数字格式的方法,通过为每个分类分配一个专属二进制向量(仅对应位置为1,其余为0),避免数值大小误导模型。适用于无顺序的名义变量(如性别、颜色),不适用于有序变量或类别过多的情况(易导致数据稀疏)。Python中可用pandas.get_dummies()快速实现。核心逻辑是用位置代替大小,确保分类平等性。原创 2025-09-13 08:46:17 · 1024 阅读 · 0 评论 -
深度学习篇---深度学习可复用网络结构代码示例
本文介绍了一个模块化的PyTorch神经网络实现方案,采用配置管理和组件化设计,便于维护和扩展。主要包含四个模块:1)配置管理模块(NetworkConfig)集中管理网络参数并验证有效性;2)基础组件模块(ConvBlock/FcBlock)封装卷积和全连接层;3)主网络模块(ImageClassifier)通过组合组件构建完整网络;4)网络工厂(NetworkFactory)提供预定义和自定义模型创建功能。该实现支持灵活配置网络结构,自动计算各层尺寸,提供中间层输出访问和权重初始化功能,适用于图像分类等原创 2025-09-10 16:47:54 · 459 阅读 · 0 评论 -
深度学习篇---常用的模型网络优化模块
模型网络优化模块主要分为注意力模块、轻量化模块和计算加速模块三大类。注意力模块(如SE、CBAM)通过增强重要特征提升识别精度;轻量化模块(如深度可分离卷积、瓶颈层)通过参数压缩实现移动端部署;计算加速模块(如计算图优化、模型量化)优化计算流程提升推理速度。不同模块各具优势:注意力模块精度高但计算量大,轻量化模块体积小但精度略降,计算加速模块速度快但需适配硬件。实际应用中需根据精度、速度和资源需求进行权衡选择,典型场景包括移动端部署选用轻量化模块,实时系统选用计算加速模块,高精度任务选用注意力模块。原创 2025-09-10 16:37:31 · 726 阅读 · 0 评论 -
深度学习篇---SE模块和CBAM模块的差异
SE模块和CBAM模块的核心差异在于注意力维度:SE仅关注通道注意力(特征类型),而CBAM同时结合通道和空间注意力(特征类型+位置)。SE模块更轻量高效,适合速度敏感任务;CBAM能精准定位,适用于复杂背景或细节敏感场景。两者都是即插即用的高效注意力机制,选择取决于任务需求——简单任务选SE,高精度需求选CBAM。原创 2025-09-09 22:56:21 · 496 阅读 · 0 评论 -
深度学习篇---MNIST手写数字分类中的CBAM模块
本文详细介绍了在PyTorch中实现CBAM注意力机制模块并将其应用于MNIST手写数字分类任务的过程。CBAM模块由通道注意力(ChannelAttention)和空间注意力(SpatialAttention)两部分组成,通过全局池化和卷积操作分别学习特征通道和空间位置的权重。文章提供了完整的模块实现代码,包括数据加载、网络构建、训练测试等流程。实验结果表明,该模块能有效提升模型性能,在MNIST数据集上达到99%以上的准确率。文中代码设计规范、模块化程度高,可方便地集成到其他计算机视觉任务中。原创 2025-09-09 22:36:57 · 436 阅读 · 0 评论 -
深度学习篇---手工设计CBAM模块时,有哪些注意事项
本文总结了手工设计CBAM模块的7个核心注意事项:1)模块应插入卷积层后、激活函数前;2)通道注意力需结合AvgPool和MaxPool,采用瓶颈结构降维;3)空间注意力要压缩通道并使用3×3卷积;4)确保输入输出维度一致;5)合理使用激活函数(ReLU+Sigmoid);6)通过压缩率r控制计算成本;7)采用Xavier初始化并监控梯度。遵循这些原则能实现高效稳定的CBAM模块,平衡注意力效果与计算成本。原创 2025-09-09 22:27:01 · 930 阅读 · 0 评论 -
深度学习篇---CBAM模块在图像分类和目标检测任务中有何应用
CBAM模块通过通道+空间;双重注意力机制有效提升图像任务性能。在图像分类中,CBAM作为特征筛选器聚焦关键特征(如猫耳、车轮),减少背景干扰,使小目标和相似类别的分类准确率提升3-5%。在目标检测中,CBAM作为定位镜强化多尺度特征,显著降低小目标漏检率15-20%,并提升密集场景检测精度3-4%。该模块轻量化设计几乎不增加计算负担,能同时解决分类的特征干扰"和检测的定位难题两大核心问题。原创 2025-09-09 22:24:10 · 1160 阅读 · 0 评论 -
深度学习篇---空间注意力模块CBAM模块
CBAM模块是卷积神经网络中的注意力机制,通过通道和空间两个维度筛选关键特征。通道注意力先评估各特征图的重要性,空间注意力再定位关键区域,二者结合形成"智能放大镜"效果。该模块轻量高效,可即插即用,在图像任务中能显著提升模型性能,使AI更精准聚焦有用信息。原创 2025-09-09 22:19:59 · 1057 阅读 · 0 评论 -
深度学习篇---MNIST 手写数字分类中的SE模块
本文详细介绍了在PyTorch中实现SE(Squeeze-and-Excitation)模块并将其应用于MNIST手写数字分类任务的全过程。SE模块通过"压缩-激励-加权"机制,自动学习通道权重,增强重要特征通道的响应。文章首先讲解了SE模块的核心实现,包括全局平均池化、两个全连接层和Sigmoid激活函数;随后展示了如何将SE模块集成到卷积神经网络中,构建完整的分类模型;最后提供了从数据准备、模型训练到测试评估的完整代码流程。原创 2025-09-08 17:08:02 · 929 阅读 · 0 评论 -
深度学习篇---查看 CNN 各层输出的 PyTorch 实现与解释
CNN在图像分类任务中的输出分析:1. 原始输出为logits向量,长度等于类别数;2. 通过Softmax转换为概率分布,最大值对应预测类别;3. 中间层输出特征图(卷积层检测边缘/纹理,池化层降采样,批归一化稳定训练,ReLU引入非线性);4. 全连接层将特征映射到类别空间。可视化各层输出有助于理解网络工作原理、诊断问题并优化模型。原创 2025-09-07 23:35:15 · 868 阅读 · 0 评论 -
深度学习篇---PyTorch 图像分类模型从零 jupyter notebook 实现
这篇教程介绍了使用PyTorch在CIFAR-10数据集上实现图像分类的完整流程。主要内容包括:环境配置、数据加载与预处理、CNN模型构建(包含3个卷积块和2个全连接层)、模型训练(交叉熵损失+Adam优化器)以及性能评估。教程详细展示了每个步骤的代码实现和输出解释,最终模型在测试集上能达到70-80%的准确率。文章还包含了数据可视化和错误分析部分,帮助理解模型性能。整个过程适合在Jupyter Notebook中逐步实现,为初学者提供了完整的深度学习实践指南。原创 2025-09-07 23:25:46 · 715 阅读 · 0 评论 -
深度学习篇---模型优化思路
本文系统阐述了图像分类模型优化的四个关键维度:优化方向、可调参数、核心方法和评估指标。首先指出性能瓶颈可能来自数据、模型结构、训练策略或效率泛化层面。其次详细列举了模型结构参数(如网络深度/宽度、卷积核大小)和训练超参数(如学习率、批大小)的调整策略。核心优化方法包括数据增强、迁移学习、模型轻量化和注意力机制等。评估指标则涵盖准确率、F1分数、推理速度等多维度指标。最后给出了标准化的优化流程,强调针对性解决欠拟合或过拟合问题,实现模型性能的系统性提升。原创 2025-09-07 23:15:25 · 796 阅读 · 0 评论 -
深度学习篇---模型训练与部署的区别
PyTorch框架下,GPU训练的模型权重可以无缝部署到CPU设备上运行。这一过程的关键在于:1)模型权重本质是与硬件无关的数值集合,存储时自动剥离设备信息;2)PyTorch通过设备无关性设计,支持通过map_location参数灵活指定目标运行设备。具体实现分为三步:GPU训练保存权重→复用相同模型结构→CPU加载运行(需注意模型一致性和推理模式切换)。这种"GPU训练-CPU部署"模式广泛用于工业场景,能兼顾训练效率与部署成本。原创 2025-09-07 22:57:59 · 595 阅读 · 0 评论 -
深度学习篇---模型训练与部署时的硬件资源
本文介绍了深度学习模型训练中的主要硬件资源及其部署注意事项。除CPU和GPU外,还详细介绍了TPU、NPU、FPGA、ASIC等专用硬件的特性及适用场景。文章重点讲解了PyTorch框架下的多硬件支持实现,包括代码示例展示如何自动检测最佳可用硬件(TPU→GPU→MPS→CPU)并进行模型训练和跨设备部署。特别强调了不同硬件间的兼容性问题和性能考量,提供了模型保存加载、设备转换等关键技术的实现方法,为开发者在不同硬件环境下部署深度学习模型提供了实用指导。原创 2025-09-07 22:40:50 · 972 阅读 · 0 评论 -
深度学习篇---模型权重文件
权重文件是训练好的模型参数的存储文件,包含卷积核、全连接层权重等关键信息。使用时需确保模型结构与训练时完全一致,并通过load_state_dict()加载权重。应用场景包括:1)直接推理预测,需保持与训练时相同的预处理流程;2)继续训练微调,建议降低学习率;3)作为预训练权重迁移学习;4)可视化分析模型特征。关键注意事项:模型结构匹配、数据预处理一致、正确设置eval模式、设备兼容性、文件完整性等。权重文件相当于模型的"知识库",合理使用可显著提升效率,但需严格遵循一致性原则以确保效果原创 2025-09-06 23:07:43 · 911 阅读 · 0 评论 -
上位机知识篇---PyQt 和 Qt
本文简单介绍了PyQt 和 Qt各自优劣势等相关知识。原创 2025-09-06 22:59:37 · 891 阅读 · 0 评论 -
上位机知识篇---Jetson Orin Nano视频流获取与显示
本文介绍在Jetson Orin Nano上使用Python和Qt创建视频处理界面的方法。通过PyQt框架结合OpenCV实现实时视频流显示、控制按钮(开始/暂停)和视频处理功能(灰度图、边缘检测)。采用多线程技术分离视频采集与UI显示,避免界面卡顿。文章还提供了性能优化建议:降低分辨率、利用GPU加速、硬件解码、控制帧率等,并分享了Jetson专用的GStreamer管道配置。该方案充分发挥了Jetson Orin Nano的硬件优势,适合需要实时视频处理的边缘计算应用场景。原创 2025-09-06 22:48:39 · 741 阅读 · 0 评论 -
上位机知识篇---LLM实现
个人可以低成本训练语言模型(LLM)。开源项目如MiniMind支持在普通GPU上训练,推荐使用RTX 3090等设备。训练流程包括:数据准备、预训练、监督微调(SFT)、可选LoRA微调和DPO优化。核心步骤为:预训练学习语言基础,监督微调训练特定任务,奖励建模评估回答质量,强化学习优化输出。文章提供了一个基于PyTorch的简化RNN语言模型实现,展示字符级文本生成的基本原理,包括数据预处理、模型定义、训练过程和文本生成演示。虽然规模较小,但揭示了LLM通过上下文预测字符的核心思想。原创 2025-09-06 22:24:42 · 864 阅读 · 0 评论 -
深度学习篇---激活函数
本文简单介绍了一下pytorch深度学习框架下的各种常见的激活函数、选择依据、代码实现等知识。原创 2025-09-06 15:39:16 · 910 阅读 · 0 评论 -
深度学习篇---批量归一化
批量归一化(BatchNorm)是深度学习中的重要技术,能有效解决训练过程中数据分布变化的问题。它通过对每层输入进行标准化处理(均值为0、方差为1),使网络训练更稳定快速,允许使用更大学习率,还能轻微缓解过拟合。PyTorch中实现简单,只需在层间插入BatchNorm层,注意训练和测试模式切换。使用时通常置于线性层后、激活函数前,适合较大批次数据。该技术显著提升模型训练效率和性能,已成为现代深度学习标配。原创 2025-09-06 14:57:30 · 430 阅读 · 0 评论 -
深度学习篇---Dropout
Dropout是深度学习中防止过拟合的有效技术,其核心思想是在训练过程中随机"关闭"部分神经元(如设定50%概率),迫使剩余神经元独立学习更通用的特征。它能模拟集成学习效果,减少神经元间的依赖,适用于数据量少或模型复杂的场景。PyTorch实现简单(nn.Dropout模块),需区分训练(开启)和测试(关闭)模式,并自动进行输出缩放以保持稳定性。原创 2025-09-06 14:12:30 · 776 阅读 · 0 评论 -
深度学习篇---常见的损失函数
摘要:本文介绍了PyTorch中7种常用损失函数的特点及应用场景。均方误差(MSELoss)和小绝对误差(L1Loss)适用于回归问题,前者对异常值敏感,后者鲁棒性强;交叉熵损失(CrossEntropyLoss)和二元交叉熵(BCELoss)分别用于多分类和二分类任务;平滑L1损失结合了L1和L2的优点;余弦相似度损失则适合度量学习任务。文章通过代码示例展示了各损失函数的实现方式,并给出了选择建议。原创 2025-09-05 15:02:45 · 877 阅读 · 0 评论 -
深度学习篇---深度学习中随机数种子的实现
本文展示了深度学习模型中随机数种子的关键作用。通过PyTorch实现的正弦曲线拟合实验,详细说明了如何设置Python、NumPy、PyTorch和CUDA的随机种子以确保结果可复现。实验对比了相同种子和不同种子下的训练效果,证实相同种子能产生完全一致的训练曲线和预测结果,而不同种子则导致明显差异。文中指出,虽然随机种子不会改变模型的理论上限,但会影响训练过程中的收敛速度和最终精度。建议在重要实验中使用多个种子取平均值,并在模型对比时固定种子以排除随机性干扰。原创 2025-09-05 14:28:52 · 818 阅读 · 0 评论 -
深度学习篇---深度学习中常用的图形处理库
PyTorch图像处理常用库对比:OpenCV适合传统视觉任务和实时处理,但需手动转换格式;Pillow简单易用但功能有限;torchvision深度集成PyTorch,提供预训练模型和优化变换;albumentations专注于数据增强;matplotlib用于可视化。实际应用中常组合使用,如Pillow读取+OpenCV预处理+torchvision转换+albumentations增强+matplotlib可视化。原创 2025-09-05 14:03:37 · 580 阅读 · 0 评论 -
深度学习篇---自定义二进制格式
本文详细介绍了将RGB三通道640×640尺寸的目标检测数据集转换为二进制格式用于PyTorch训练的完整流程。主要内容包括:1)解析目标检测数据集的结构(图片、类别和坐标标注);2)数据处理步骤:图片统一尺寸并转为数组,标注文件解析为数字格式;3)二进制文件存储方法:分别保存图片数据和标注数据,并设计灵活的头部信息;4)PyTorch数据加载实现:自定义Dataset类解析二进制文件,支持数据增强和批量处理。该方法能显著提升数据读取效率,便于管理大规模数据集,并兼容主流目标检测模型。原创 2025-09-05 13:52:51 · 806 阅读 · 0 评论 -
深度学习篇--- MNIST 数据集的数据格式
MNIST数据集采用二进制idx格式存储,包含训练集(60,000张)和测试集(10,000张)图像及对应标签。图像文件头部含4个32位整数(文件标识、图像数量、行列数),随后是28×28=784个按行排列的像素值(0-255)。标签文件头部含2个32位整数(文件标识、标签数量),随后是0-9的数字标签。这种二进制格式节省空间、读取高效,PyTorch的torchvision.datasets.MNIST能自动解析成Tensor格式。原创 2025-09-05 13:34:16 · 600 阅读 · 0 评论 -
深度学习篇---MNIST:手写数字数据集
本文详细介绍了使用PyTorch处理MNIST手写数字数据集的完整流程,包含五个关键步骤:1)准备工作(导入库和设置超参数);2)数据加载与预处理(标准化处理并创建数据加载器);3)定义简单卷积神经网络模型(包含两个卷积块和全连接层);4)模型训练(使用交叉熵损失和Adam优化器);5)模型评估(测试集准确率约99%)。文中还提供了可视化样本、训练曲线和预测结果的可选代码,并解释了每行代码的作用和常见问题解决方法,为深度学习初学者提供了完整的入门实践案例。原创 2025-09-04 22:45:06 · 1162 阅读 · 0 评论 -
深度学习篇---pytorch数据集
本文介绍了PyTorch图像分类学习中常用的5个数据集,从核心信息、任务定位、优缺点、加载代码和实战场景5个维度进行分析。1)MNIST:28×28灰度手写数字,适合新手理解基础流程;2)Fashion-MNIST:进阶版MNIST,用于验证CNN特征提取能力;3)CIFAR-10/100:32×32彩色图像,学习CNN设计及正则化技术;4)ImageNet:工业级大数据集,主要学习迁移学习;5)STL-10:中等尺寸图像,支持半监督学习。原创 2025-09-04 22:39:54 · 1203 阅读 · 1 评论 -
上位机知识篇---conda run
【摘要】condarun是Conda提供的命令行工具,可直接在指定虚拟环境中执行命令而无需激活环境,适合自动化脚本和单次命令执行。其基本语法为conda run -n 环境名 命令,支持运行脚本、安装包等操作。与conda activate的主要区别在于不改变当前环境状态。使用时需注意环境名正确性、命令格式规范,在VSCode中可能出现终端识别问题,可通过重启或conda init解决。环境命名建议使用字母、数字和下划线,避免特殊符号和空格。对于复杂命令或交互式操作,需添加相应参数确保正常执行。原创 2025-09-04 22:34:19 · 861 阅读 · 0 评论 -
Python篇---返回类型
本文通俗易懂地介绍了Python函数的各种返回类型及其应用场景:1. 无返回值(None)适用于仅执行操作的函数;2. 单值返回用于计算结果;3. 多值返回自动打包为元组;4. 容器类型(列表/字典/集合)适合返回结构化数据;5. 高阶用法可返回函数或类实例。文章强调应根据需求选择合适的返回类型,并指出return会立即终止函数执行,未显式返回时默认返回None。通过生活化比喻帮助理解不同返回类型的特点和使用场景。原创 2025-08-28 21:38:06 · 394 阅读 · 0 评论 -
深度学习篇---AlexNet网络结构
本文介绍了使用PyTorch实现AlexNet深度学习模型的完整过程。AlexNet包含5个卷积层和3个全连接层,采用ReLU激活、重叠池化和Dropout等技术。实现步骤包括:定义网络结构、准备数据(以CIFAR-10为例)、初始化模型、设置损失函数和优化器,以及训练测试流程。关键点在于正确处理输入尺寸(224×224)、通道数和全连接层维度。通过10轮训练,该模型在CIFAR-10上能达到70%-80%的准确率。文章提供了可直接运行的完整代码,帮助读者快速掌握这一经典CNN模型的实现方法。原创 2025-08-27 00:12:24 · 683 阅读 · 0 评论 -
深度学习篇---ResNet-50网络结构
本文介绍了PyTorch实现ResNet-50的关键要点。ResNet-50的核心是使用Bottleneck残差块替代BasicBlock,通过1×1降维、3×3特征提取和1×1升维的三层卷积结构,在保证深度(50层)的同时减少计算量。文章详细拆解了Bottleneck块的实现代码,并类比为"高效快递打包流水线"。随后展示了如何用该模块构建完整的ResNet-50网络,包含初始卷积层、4组残差块(3/4/6/3配置)和全连接层。最后通过随机输入验证模型运行正常,并解释了50层的组成来源。原创 2025-08-26 10:42:00 · 2208 阅读 · 0 评论