- 博客(54)
- 收藏
- 关注
原创 yolo13
创新点大白话解释带来的效果HyperACE让模型“看全局”,理解远处区域之间的关系检测更准FullPAD整个网络都强化特征信息更稳定、更敏感轻量卷积用更省算力的卷积结构更快、更轻、更省资源。
2025-11-24 12:36:38
519
原创 yolo parse_model 函数详解
==================== 新增代码开始(你原始代码加入的 LocalAttention 特殊处理) ====================# d["backbone"] 和 d["head"] 都是类似 [(from, number, module_name, args), ...] 的条目列表。# ----------------- 遍历 backbone 和 head 中定义的每一层 -----------------
2025-11-23 13:28:36
914
原创 基于局部重要性的注意力(LIA)ACCV2024
论文地址:https://openaccess.thecvf.com/content/ACCV2024/papers/Wang_PlainUSR_Chasing_Faster_ConvNet_for_Efficient_Super-Resolution_ACCV_2024_paper.pdf。# 对应公式 Eq. (4): A(X) = σ(X[0]) * ψ(σ(I(X))) * X。# === 中间分支:生成局部重要性图 (Importance Map) ===
2025-11-22 10:55:54
572
原创 Linux 设备树
设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设备树的文件叫做 DTS(Device。Tree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如。CPU 数量、 内存基地址、IIC 接口上接了哪些设备、SPI 接口上接了哪些设备等等。设备树是采用树形结构来描述板子上的设备信息的文件,每个设备都是一个节点,叫做设。备节点,每个节点都通过一些属性信息来描述节点信息,属性就是键—值对。设备树源文件扩展名为.dts。
2025-11-11 09:20:19
159
原创 Selective Kernel Networks (SKNet)
SKNet 的核心在于其动态选择机制,使得网络无需手工固定感受野大小,而是能根据输入数据的内容,在训练中和推理时自动学习并选择最合适的卷积核感受野,从而显著提升了模型处理图像中多尺度目标的能力。
2025-11-08 17:41:27
346
原创 ResNetLayer 类
继承自nn.Module,表示这是一个可训练的 PyTorch 模块。作用是构建ResNet 网络中的一层(例如 conv2_x、conv3_x、conv4_x、conv5_x)。
2025-11-08 12:33:26
921
原创 纯虚函数与抽象类
/ 通过基类指针调用虚函数,实际执行派生类的重写版本。* 该函数创建一个派生类对象,通过基类指针调用虚函数,// 创建派生类对象,使用基类指针指向它。* @brief 测试函数,演示多态调用。* 展示C++中的动态绑定和多态特性。* @return 无返回值。* @param 无参数。
2025-11-05 09:29:32
193
原创 Ultralytics YAML 模型定义格式
第一层:用一个ResNet风格的卷积块把输入RGB图像(3通道)变成64通道的特征图。,就表示这个模块堆叠 3 层(比如 ResBlock 堆叠 3 个)。经过一个 ResNet 层(输出64通道,不下采样),:表示把第 3 层和第 5 层的输出拼接。残差连接(shortcut)从上一层输入图像(3通道),作为模型的第一层卷积块。表示这一层的输入来自。卷积层(Conv2d)输出特征图(64通道)Input(3通道)
2025-11-03 10:35:52
413
原创 Ultralytics RT-DETR-ResNet50 的模型结构配置文件(YAML)
这行是检测头(Detection Head)参数含义输入的三个特征图(即 P3, P4, P5)1重复次数(模块堆叠数)解码器模块(Transformer-like 结构)[nc]输出类别数(number of classes)这行表示使用三层特征图 (P3, P4, P5)作为输入,经过一个RT-DETR Transformer 解码器,输出目标检测结果(类别 + 位置)。
2025-11-03 10:33:31
1135
原创 RT-DETR (ResNet50 版) 训练结果文件夹结构
模型在验证集上表现最好的权重文件(通常以 mAP、loss、precision、recall 等指标判定)。可用于继续训练(resume training)。训练最后一个 epoch 保存的模型权重。batch 大小、学习率、epoch 数。用于最终推理(推荐部署使用)。等是保存的多个训练批次样例。
2025-11-03 10:17:50
548
原创 QT配置文件
这个.pro文件的作用就是告诉 Qt:你需要哪些模块 (coreguinetworkwidgets编译器使用 C++11开启弃用功能警告哪些文件要编译(源文件和头文件)可执行文件安装路径。
2025-10-28 12:04:31
141
原创 Linux 下使用 V4L2 接口采集摄像头图像并广播或显示的线程
打开摄像头设备设置分辨率和像素格式请求内核缓冲区并 mmap入队缓冲区开启视频流循环采集每一帧:取出缓冲区 → 转 QImage → 显示/广播 → 放回缓冲区停止采集后释放资源这段代码核心是V4L2 + Qt + UDP 广播实现摄像头采集、显示和网络传输。
2025-10-28 10:51:11
640
原创 RT-DETR
RT-DETR(Real-Time DETR)是由百度 PaddleDetection 团队提出的实时 Transformer 检测器,相比传统 DETR:推理速度更快(可达到实时水平)精度仍接近标准 DETR可替换不同 backbone(ResNet、ConvNeXt、Swin 等)这些.yaml文件就是定义模型结构的配置文件,决定了 backbone、Transformer 层数、通道数等。
2025-10-28 09:42:43
163
原创 YOLOV8网络结构
1️⃣ 输入图像预处理2️⃣ Backbone 提取特征3️⃣ Neck 多尺度融合4️⃣ Head 分支预测5️⃣ 解码 + NMS 得到最终检测框。
2025-10-28 09:15:15
734
原创 C++ vector 容器
C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素。vector 是基于数组的数据结构,但它可以自动管理内存,这意味着你不需要手动分配和释放内存。与 C++ 数组相比,vector 具有更多的灵活性和功能,使其成为 C++ 中常用的数据结构之一。vector 是 C++ 标准模板库(STL)的一部分,提供了灵活的接口和高效的操作。
2025-08-20 21:47:23
959
原创 神经网络代码--反向传播计算梯度
这个函数的作用是:给定输入x和标签t,通过前向传播计算损失,反向传播得到每层的梯度,并将所有参数的梯度打包进一个字典返回,用于后续的权重更新(如 SGD、Adam)。
2025-07-29 13:03:48
828
原创 神经网络--怎么抑制过拟合
方法(在代码中)L2 正则(权重衰减)DropoutDropout层BatchNorm层ReLU + He 初始化简洁网络结构控制取决于的设置。
2025-07-27 20:08:55
495
原创 深度学习代码--创建一个深度卷积神经网络的类
sys.path.append(os.pardir) # 将父目录加入模块搜索路径,方便导入父目录中的模块import pickle # 用于保存和加载训练好的模型参数from common.layers import * # 导入各类神经网络层(如Convolution, Relu, Pooling等)"""高精度卷积神经网络,识别率超过99%网络结构如下:"""# ========== 初始化权重 ==========
2025-07-25 18:11:50
948
原创 深度学习--权重初始化的标准差
权重初始化的标准差”是指在时,随机分布的标准差(或方差)。它直接决定了初始权重值的和。如果这个标准差设置得不合适,会导致:✅→ 前向传播时激活值容易爆炸,反向传播时梯度也会爆炸。✅→ 前向传播时信号衰减,反向传播时梯度消失,网络无法有效学习。
2025-07-21 20:03:56
185
原创 深度学习代码--将下载好的数据集图片显示出来
from dataset.mnist import load_mnist # 从 dataset.mnist 模块导入加载 MNIST 数据集的函数。sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定,将父目录加入模块搜索路径。print("img_shape", img.shape) # 打印变换后的图像形状: (28, 28)print("img_shape", img.shape) # 打印图像数据的形状: (784,)# 调用函数显示图像。
2025-07-21 18:47:43
172
原创 深度学习代码--加载minst数据集
# coding: utf-8# 如果使用的是 Python2,导入 urllib 可能会失败,这里进行处理try: import urllib.request # Python 3 的下载模块except ImportError: raise ImportError('You should use Python 3.x') # 提示必须用 Python 3import os.path # 用于路径操作import gzip # 处理压缩文件import pickle
2025-07-21 08:14:37
961
原创 深度学习代码--超参数随机搜索
sys.path.append(os.pardir) # 将父目录加入sys.path,便于导入父目录的模块from dataset.mnist import load_mnist # 加载MNIST数据集from common.multi_layer_net import MultiLayerNet # 多层神经网络实现from common.util import shuffle_dataset # 数据集随机打乱工具。
2025-07-20 20:25:05
734
原创 深度学习代码--四种典型优化器Adam AdaGrad Momentum SGD神经网络训练图片表现
训练 4 个独立神经网络(分别使用不同优化器),比较它们在相同初始条件下的表现。每个优化器记录一条损失曲线。在 2000 次迭代后,绘制出。
2025-07-20 20:00:45
452
原创 深度学习代码--通过图片展现SGD, Momentum, AdaGrad, Adam的参数更新路径
定义一个简单的二元函数 f(x,y)={x^2}/20+ y^2=,最优解在 (0,0)。使用4种优化器(SGD, Momentum, AdaGrad, Adam)从同一个初始位置 (−7,2)画出每种优化器的。
2025-07-20 19:51:57
908
原创 深度学习代码--使用权重衰减抑制过拟合
batch_mask = np.random.choice(train_size, batch_size) # 从训练集随机选择batch_size个索引。iter_per_epoch = max(train_size / batch_size, 1) # 每轮epoch大约3次迭代。train_size = x_train.shape[0] # 训练集样本数量(300)# ====== 为了演示“过拟合现象”,故意减少训练数据 ======
2025-07-20 19:42:48
592
原创 深度学习代码--使用Dropout来抑制神经网络过拟合
x = np.arange(len(train_acc_list)) # 横坐标:epoch次数。markers = {'train': 'o', 'test': 's'} # 不同曲线的标记样式。# ====== 设定是否使用Dropout,以及Dropout比例 ======plt.legend(loc='lower right') # 图例位置:右下角。plt.ylabel("accuracy") # Y轴标签:精度。# ====== 绘制训练精度与测试精度曲线 ======
2025-07-20 19:33:30
958
原创 深度学习代码--比较不同权重初始化方法(std=0.01、Xavier 和 He)的训练效果
markers = {'std=0.01': 'o', 'Xavier': 's', 'He': 'D'}# 不同方法的曲线标记。grads = networks[key].gradient(x_batch, t_batch)# 计算梯度。loss = networks[key].loss(x_batch, t_batch)# 计算损失。x_batch = x_train[batch_mask]# mini-batch输入数据。train_loss[key] = []# 初始化损失记录列表。
2025-07-20 17:54:43
340
原创 神经网络训练中迭代(iteration)、批次(batch)、轮次(epoch)之间的关系
迭代(iteration)、批次(batch)、轮次(epoch)之间的关系这个关系很多初学者都会混,我给你。
2025-07-20 17:46:45
452
原创 深度学习代码--加载已经训练好的 DeepConvNet 模型参数,在测试集上计算准确率,并比较 float64 和 float16 两种精度的表现差别
sys.path.append(os.pardir) # 为了导入父目录而进行的设定sampled = 10000 # 为了实现高速化# 转换为float16型。
2025-07-19 16:01:40
580
原创 深度学习代码--深层卷积神经网络(DeepConvNet)
sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定"""识别率为99%以上的高精度的ConvNet网络结构如下所示"""# 初始化权重===========# 各层的神经元平均与前一层的几个神经元有连接(TODO:自动计算)wight_init_scales = np.sqrt(2.0 / pre_node_nums) # 使用ReLU的情况下推荐的初始值# 生成层===========else:return x。
2025-07-19 15:51:07
971
原创 深度学习代码--训练卷积神经网络
sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定# 读入数据# 处理花费时间较长的情况下减少数据# 保存参数")# 绘制图形plt.show()段代码是的完整流程,我来做,再结合前面的结构,把它的讲清楚。
2025-07-19 15:01:59
796
原创 深度学习代码--创建一个简单的卷积神经网络的类
sys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定"""简单的ConvNetParameters----------input_size : 输入大小(MNIST的情况下为784)hidden_size_list : 隐藏层的神经元数量的列表(e.g. [100, 100, 100])output_size : 输出大小(MNIST的情况下为10)weight_init_std : 指定权重的标准差(e.g. 0.01)
2025-07-19 14:41:41
639
原创 深度学习代码--训练深度卷积神经网络
import osimport syssys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定# 为了再现过拟合,减少学习数据# weight decay(权值衰减)的设定 =======================#weight_decay_lambda = 0 # 不使用权值衰减的情况break# 3.绘制图形==========plt.show()这段代码是一个的实验程序,它用来在和参数空间里找出表现最好的组合。
2025-07-19 13:25:30
735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅