- 博客(56)
- 收藏
- 关注
原创 python版代码风格撰写prompt
每个函数写详细中文 docstring,说明功能、几何/算法直觉、核心公式、输入输出和计算步骤;基础函数在前,组合函数在后,最后提供统一接口;计算三维空间中点到圆周的距离误差,并将其分解为轴向和径向两个分量。2.径向误差——将 P 投影到圆平面后,投影点 P' 到圆周的距离。# 总误差:轴向误差与径向误差的欧氏合成(两分量相互正交)# 径向误差 = 投影点到圆心的距离与半径之差的绝对值。# P' 到圆心的距离(平面内径向距离)1.轴向误差——点到圆所在平面的距离。# 轴向误差:调用点到平面距离函数。
2026-05-09 09:00:32
84
原创 docker安装和使用
WSL 的作用,是让你在 Windows 里直接拥有一个可用的 Linux 环境,所以你不用重装双系统,也不用单独开一台完整虚拟机,就能使用 Linux 命令、安装开发环境、运行很多原本更适合 Linux 的工具。而在 Linux 上,系统本身就已经是 Docker 需要的环境了,所以一般直接安装 Docker Engine 就可以,不一定非要装 Docker Desktop。微软的代理排查文档明确提到,PowerShell 之类的调用如果代理没有正确配置,就可能出现 403/407。
2026-04-22 18:20:28
1370
原创 Docker和虚拟机
镜像是一种"包",但和代码包的区别在于——它不只包含你的代码,还包含了一整套"能让这些代码跑起来的环境":操作系统层、系统库、CUDA、Python、依赖包、模型权重、启动配置。你可能用过 VMware 或 VirtualBox——如果你从朋友那里拷来一个 Windows 虚拟机镜像,打开就是一个完整的 Windows 系统,里面装好的软件、文件、设置都在。,剩下的 99.999% 都是为了让你的代码能跑起来的各种依赖和环境。里面包含的不只是代码,而是"代码 + 能让代码跑起来的一切东西"。
2026-04-21 19:10:57
457
原创 深度学习环境搭配以及CUDA的runtime
如果你要用 MMCV、MMSegmentation、某些老版本 Restormer/BasicSR,它们对 CUDA/PyTorch 版本有要求,优先服从这些依赖。只有当你要编译 CUDA 代码(比如 MMCV 自定义算子、DCN、某些自编译的 CUDA kernel)时,才需要装完整的。源码没有预编译版本匹配你的环境,pip 就会在你本地现场调用 nvcc 编译,这时候你机器没 Toolkit(没 nvcc)就会报错。,不是你已经装了的版本。但如果你装 MMCV 的 DCN 算子,MMCV 的。
2026-04-21 00:13:54
343
原创 深度学习第四版
一、核心符号定义符号含义θ模型参数g_t第 t 步的梯度,即 ∂L/∂θm_t一阶动量(梯度的指数加权平均)v_t二阶动量(梯度平方的指数加权平均)η学习率β₁一阶动量衰减系数,通常 0.9β₂二阶动量衰减系数,通常 0.999ε防止除零的极小常数,通常 1e-8二、Adam 的三步计算第一步:更新一阶动量对梯度本身做指数加权平均。作用:给梯度加惯性。连续多步梯度方向一致(比如一直为正)→ m_t 累积变大 → 参数更新加速。
2026-04-01 17:21:37
389
原创 Git笔记
默认的 fast-forward 合并,如果 dev 没有新提交,Git 会直接把 dev 指针移到 xiaoming 的最新提交上,不会产生新的合并节点。这个邮箱最好和你 GitHub 账号注册的邮箱一致,这样 GitHub 才能把提交记录和你的账号关联起来,在贡献者列表里显示你的头像。:主分支,存放的是稳定的、可以发布的代码。,里面包含指向当前快照的指针、作者信息、时间戳,以及指向上一次 commit 的指针(父提交)。前面说的"分布式"就体现在这里——你本地就有完整的版本历史,不需要联网。
2026-04-01 00:18:42
407
原创 卡特蒙洛和时序差分
例子设定有一条很简单的路线:S0 -> S1 -> S2 -> 终点每走一步的奖励是:从 S0 到 S1:r0 = 0从 S1 到 S2:r1 = 0从 S2 到终点:r2 = 10折扣因子:gamma = 1先假设一开始所有 Q 都是 0。为了简单,我这里先写成状态价值的形式 V,更容易看清楚;最后我再补一句 Q 版怎么理解。
2026-03-31 12:20:45
305
原创 在VSCode中恢复上次终端,最直接的方法是重新打开终端面板(Ctrl + 或 Ctrl + Shift + ` )。若需自动恢复之前关闭的终端会话,可通过设置 Terminal › Integrat
【代码】在VSCode中恢复上次终端,最直接的方法是重新打开终端面板(Ctrl + 或 Ctrl + Shift + ` )。若需自动恢复之前关闭的终端会话,可通过设置 Terminal › Integrat。
2026-03-20 16:41:47
73
原创 深度学习笔记第三版
这四个值构成了神经网络训练的完整闭环——前向传播计算输出(z→a),反向传播计算梯度(∂L/∂a→∂L/∂z→∂L/∂W)!:梯度 = 激活函数导数 × 前一层误差,导数决定了梯度传播效率!
2026-03-06 14:18:10
373
原创 深度学习笔记(第二版)
本质:100个可学习的embedding向量(随机初始化的参数)作用:代表100个"对象槽位",每个query负责在图像中寻找一个对象输出:每个query预测 → 类别(包括"无对象"类∅)+ 边界框7.7个对象对象数 < 30个100个是工程上的最优选择(覆盖率vs计算效率)图像↓ Encoder图像特征(K, V)↓ Cross-Attention (Q来自queries)Queries融合图像信息↓ Self-Attention (queries互相看)Queries避免重复。
2026-02-03 02:55:40
565
原创 SAM论文精读
整体进化路径阶段数据量标注方式模型能力每张图mask数1. 辅助手动120k图/4.3M mask人工点击+模型辅助从ViT-B升级到ViT-H20→44个2. 半自动180k图/5.9M mask模型预填+人工补充学会分割不显著物体44→72个3. 全自动11M图/1.1B mask纯模型生成处理歧义+多尺度平均100个。
2026-01-27 02:57:48
389
原创 Decoding with Structured Awareness
问题答案作用在多尺度空间中找到"有结构的地方"(边缘、斑点、角点等)大小=什么这个位置在这两个尺度间的差异有多大= 结构有多明显大小=多少算好通常设定一个阈值,DoG > threshold 的地方才认为是"特征"为什么要相减相减能自动去掉平坦区(都是0就相减也是0),强化有结构的地方。
2026-01-21 19:00:36
631
原创 小波变化WTConv
深入理解WTConv论文:《Wavelet Convolutions for Large Receptive Fields》
2026-01-21 14:10:48
616
原创 GPU利用率分析
答案:不完全是!关键看计算/访存比操作类型计算量内存访问计算/访存比GPU利用率标准卷积大中高90%+ ✅矩阵乘法大中高90%+ ✅BatchNorm小中中50-70%torch.roll极小大极低10-30% ❌Pooling小中低30-50%
2025-12-30 16:22:01
1423
原创 MMCV包的安装教程
摘要:本文解决了在Swin Transformer语义分割项目中遇到的OpenMMLab版本冲突问题。关键发现是mmcv 2.x与项目所需的mmcv-full 1.4.0不兼容导致"print_log"缺失错误。解决方案包括:1)卸载冲突包;2)重新安装mmcv-full 1.4.0;3)安装老版mmsegmentation;4)使用项目本地代码而非标准包。特别强调要避免混用新旧版本组件,并提供了完整的版本对照表和修复步骤,确保项目环境配置正确。(148字)
2025-12-27 22:57:11
1383
原创 PIL.Image、numpy数组和Tensor的区别及转换方式
本文主要介绍了深度学习中PIL.Image、numpy数组和Tensor的区别及转换方式。PIL.Image用于读取原始图像数据,numpy数组用于数值计算和预处理,Tensor是PyTorch的计算结构,需转换为(C,H,W)格式。三者转换方式包括:PIL转numpy使用np.array(),转Tensor用transforms.ToTensor();numpy转Tensor用torch.from_numpy(),转PIL用Image.fromarray();Tensor转numpy需先.cpu()再.n
2025-12-21 16:17:39
765
原创 贝叶斯优化方法
l(x)输入:一个参数值 x输出:这个值在"高分试验"中出现的概率"成功者的经验"g(x)输入:一个参数值 x输出:这个值在"低分试验"中出现的概率"失败者的教训"大 → 成功者常用、失败者少用 →优先尝试小 → 失败者常用、成功者少用 →避开≈1 → 都没用过 →探索性尝试如何将参数传入模型中的?这是一个非常关键的问题,而且你现在正好卡在**“Optuna 到底怎么真正影响模型训练”这一步。我用一句总览 + 一张“参数流向图(文字版)”+ 对你代码的逐点对照**来讲清楚。
2025-12-20 15:13:19
1561
原创 HPLNet: a hierarchical perception lightweight network for road extraction
🎯 核心问题:解码阶段到底在干什么?在已知"大致位置"的前提下,来精确确定边界。
2025-12-19 15:25:45
663
原创 Swin Transformer整体架构
完美!这张图清楚地展示了Swin Transformer的核心创新。我来详细解释架构和为什么必须交替使用W-MSA和SW-MSA。Swin = Shifted Window Transformer二、W-MSA:Window Multi-Head Self-Attention传统ViT的问题W-MSA的解决方案将特征图划分成不重叠的窗口(Window)计算复杂度对比:W-MSA的代码逻辑三、为什么W-MSA不够?致命缺陷!问题:窗口之间完全隔离
2025-12-19 03:08:54
1150
原创 Transformer的编码器和解码器
整体架构概览Transformer由编码器栈(Encoder Stack)和解码器栈(Decoder Stack)组成:核心组件(按顺序):关键特点:核心组件(按顺序):关键特点:Encoder的Self-Attention(无mask):Decoder的Masked Self-Attention:为什么这样设计?这是Decoder最关键的组件:具体例子(机器翻译):为什么需要Cross-Attention?2. 共享的设计模式两者都使用:场景类比:输入:"Th
2025-12-19 02:26:59
1343
原创 UNeXt-Stripe网络架构解释
差异 | - | -7.2% | -12.8% | +230% | -8.6% | -28.1% || A | PatchEmbed(本文) | 0.9234 | 0.8589 | 0.087 | 0.912 | 94.3% || 配置 | Stage 4-5设计 | Dice ↑ | IoU ↑ | 碎片率 ↓ | 边界精度 | 拓扑正确率 |
2025-12-18 22:14:02
923
原创 结构光三维视觉与激光条纹提取方法,以及高斯模拟
工业焊接场景↓激光投射 → 获得二维条纹图像(1024×1024)↓传统方法:Steger条纹中心提取→ 高精度但鲁棒性有限↓深度学习方法:UNeXt-Stripe语义分割→ 识别焊缝区域,自适应处理复杂工业环境↓条纹中心线提取 → 已知激光器和相机的标定参数↓三角测量计算 → 利用条纹偏移量 Δy_pixel↓获得深度图(Depth Map)↓反投影到三维坐标(X, Y, Z)↓得到焊接缝的三维点云和形状信息↓焊接质量评估。
2025-12-17 19:32:21
1247
原创 MaxPool2d如何记录位置索引
位置索引 = 特征在原始张量中的坐标# 假设原始特征图:# MaxPool2d(2×2, stride=2) - 每个2×2窗口取最大值# 同时记录这个最大值在原始张量中的"线性索引"线性索引(Flattened Index)2D坐标 → 1D线性索引4×4的张量展平成16个元素:2D坐标(row, col) → 1D索引 = row × width + col例如:(0, 0) → 0位置索引 = 特征在原始张量中的"坐标/地址"为什么需要?1. ✅ 保持空间对应关系。
2025-12-15 16:52:46
359
原创 LWGANet:两大核心模块:TGFI(减空间冗余)和 LWGA(减通道冗余。
传统方法(同质化):256通道 → 全部做3×3卷积问题:一刀切,无法适应多尺度LWGANet(异构化):64通道 → 专注点级细节(GPA) 成本:低64通道 → 专注局部纹理(RLA) 成本:低64通道 → 专注中程结构(SMA+TGFI)成本:中64通道 → 专注全局上下文(SGA+TGFI)成本:中优势:1. 各司其职,通道利用率高2. TGFI控制成本,SMA/SGA能负担得起3. 多尺度全覆盖,无短板异构分组范式:从同质化分组转向异构多尺度表征,每个通道组专注特定尺度。
2025-12-15 16:50:57
1262
原创 hook来获取模型每层的激活值输出
========== 1. 准备一个存储激活值的字典 ==========# ========== 3. 前向传播,自动捕获激活值 ==========# ========== 2. 给模型的层注册hook ==========print(f"捕获了 {len(activations)} 层")# ========== 4. 可视化任意层 =========="""显示某层的前num_channels个通道"""# 添加项目根目录到 Python 路径。"""定义hook函数"""
2025-12-12 12:56:15
717
原创 DiC模型完整总结
《DiC:重新思考扩散模型中的3×3卷积设计》摘要 CVPR 2025论文DiC挑战了当前扩散模型由Transformer主导的趋势,提出仅用3×3卷积构建高性能模型。核心创新包括:1)采用U-Net沙漏架构替代各向同性结构,通过多尺度下采样自然扩大感受野;2)设计稀疏跳跃连接减少33%参数;3)提出层级专属条件注入机制;4)完全移除Self-Attention的基础块设计;5)组合下采样与卷积堆叠实现全局感受野。实验显示DiC在ImageNet 256×256生成任务上FID达8.2,优于DiT的9.6,
2025-12-09 15:48:09
964
原创 贝叶斯优化完整流程详解
在探索(Exploration)和利用(Exploitation)之间取得平衡。:将新观测点加入数据集,更新我们的认知。:获得初始数据点,为后续建模提供基础。:用选中的参数训练模型,获得真实性能。:用便宜的模型近似昂贵的目标函数。
2025-12-06 18:14:42
400
原创 主成分分析和图像算子原理
导数用于捕捉像素值的变化。通过计算图像的一阶导数(可理解为相邻像素的差值运算),就能找到这些像素变化的位置,从而提取出图像的边缘,这就是“边缘算子”的原理。哪怕是黑白的猫轮廓,也能让人识别出“这是猫”,因为轮廓包含了最核心的形状信息。简单来说,导数在图像中起到了“找边界”的作用,通过聚焦像素值的变化处,提取出图像的轮廓,这是图像识别、特征提取的关键一步。比如一张猫的图像,其本质是由不同像素值构成的“函数分布”。- 为简化数据,将这些数据点投影到一条直线上(类似投影子到墙上),投影后的新点沿直线排列。
2025-12-06 12:12:07
249
原创 频域交叉卷积
通过反向传播,以及模型loss,因为我们采用的是双向路径提取特征,所以该频域卷积参数就是学习到提取低频的特征:假设卷积核学习到的权重h_r = [0.8, 1.2, 0.9, ...] # 实部卷积核h_i = [0.1, 0.05, 0.08, ...] # 虚部卷积核(较小)```**滤波效果**:- 对**中频(边缘、纹理)**:增强系数 $h_r \approx 1.0\sim1.5$- 对**高频(噪声)**:抑制系数 $h_r \approx 0.3\sim0.5$
2025-12-01 02:35:16
1015
原创 ADS_UNet论文详细介绍
摘要:ADS_UNet提出了一种高效的分阶段训练策略,通过冻结前序编码器和样本重加权机制,实现特征多样性和训练效率的提升。其创新点包括:1)分阶段加性训练,逐层冻结编码器参数;2)掩码下采样深度监督,节省2.5倍显存;3)可学习层权重自动发现最优分割尺度;4)基于AdaBoost的加权集成,性能超越UNet++和Transformer模型。实验表明,该方法在CRAG和BCSS数据集上分别达到89.04%和61.05%的mIoU,同时节省42.55%计算量和59.51%显存。
2025-11-30 16:13:37
767
原创 分割指标分析
Lee Raymond Dice用它度量。:关注的是"两个集合的平均覆盖度"Paul Jaccard用它度量。:关注的是"真实的重叠比例"
2025-11-30 11:04:17
247
原创 拓扑损失函数
答案先说清楚——所有方向的边缘竖线、横线、斜线,只要是真实焊缝的边缘,就希望预测到;只要是多余的边缘,就希望不要出现。下面我结合每行代码再帮你捋一遍,并专门说明跟方向的关系。
2025-11-27 19:25:36
422
原创 UNeXt的Shifted MLP和Swin Transformer的Shifted Window Attention。
对比维度核心思想空间窗口限制attention通道shift引入多样性局部性显式的空间窗口隐式的通道差异复杂度需要mask机制简单直接适用分辨率高分辨率(56×56)低分辨率(16×16)灵活性窗口大小固定Shift量可调参数效率Attention参数多MLP参数少类比理解Swin: 像在教室里分组讨论,每组只能内部交流,通过换座位(shift)实现跨组交流UNeXt: 像每个人戴着不同的"时间延迟耳机",听到的内容有时间差,自然形成多样化的感受UNeXt的设计是。
2025-11-25 19:36:21
369
原创 基于DSNet创新
x5 = torch.roll(x[:, 4*c:5*c, :, :], shifts=(-1, -1), dims=(2, 3)) # 左上。x6 = torch.roll(x[:, 5*c:6*c, :, :], shifts=(-1, 1), dims=(2, 3)) # 右上。x3 = torch.roll(x[:, 2*c:3*c, :, :], shifts=(0, -1), dims=(2, 3)) # 左。
2025-11-23 16:36:35
370
原创 空间移位 + 独立卷积核 = 强大的多视角特征提取能力
部分通道移位,但是部分通道不移位,但是卷积核是同一个卷积核,这样不会导致卷积核错误识别吗,因为一部分移位了,一部分没移位所以会导致信息错乱?卷积核不是对所有的输入通道全部进行卷积吗?为什么会每个输入通道都有自己独立的卷积核?每个通道有独立的卷积权重 → 网络学会区分移位通道和原位通道。每个卷积核对4个输入通道使用不同的子核权重,输入通道数 = 4个 ← 与卷积核数量无关。卷积核数量 = 8个 ← 等于输出通道数。循环移位,让每个位置能"看到"下方信息。一个完整的卷积核包含输入通道个子核。
2025-11-23 01:40:57
326
空空如也
双路径模型有没有哪位哥复现过双路径医学分割模型
2025-01-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅