深度学习
侃山
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PyMuPDF 渲染含 /UserUnit 的 PDF 导致内存爆炸 —— 问题溯源与修复
意味着页面中所有坐标值的实际物理单位是 100pt,而非 1pt。参数,允许将默认坐标单位(1pt)等比缩放。更危险的是:如果没有预先的尺寸检查,直接调用。这就是两个工具数值差 100 倍的根本原因。PDF 1.6 规范引入了页面字典的。渲染,单张图片的内存占用会超过。原创 2026-03-13 00:59:25 · 36 阅读 · 0 评论 -
python import从哪儿导入包? sys.path浅谈
sys.path所决定的项目路径路径。原创 2025-11-03 13:58:56 · 263 阅读 · 0 评论 -
DDIM(Diffusion)个人总结
为了解决降噪时,DDPM一次只能预测一个时间步,提出了DDIM,达到一次跨越多个时间步的目的。的取值,在二者之间自由切换,从而实现少步数采样、速度更快且图像质量接近 DDPM的效果。DDIM 通过控制该方差项。原创 2025-10-23 21:00:05 · 439 阅读 · 0 评论 -
DDPM(Diffusion)个人总结
注:这是笔者自己的笔记,主要供复习使用,因此比较粗糙,详细过程请移步其余优秀博客。我们的U-net输出的噪声就是此处公式中的噪声。是未知的,就需要进行预测。(以下为推理时的公式)是加噪的步数,是预先定义的;注意,这里可不是直接可以推理得到最终生成图片。公式上当然是的,但效果会很差。,有了这样的模型,我们就可以一步步,由。是已知的原图,可以直接使用。随机采样,就可以得到预测的。根据贝叶斯公式,推导出。原创 2025-10-22 20:02:33 · 380 阅读 · 0 评论 -
卷积公式记忆
那么,对于长度为L的向量,假设kernel size为K,那么如果stride为1,kernel可以在这个向量上滑动L-K次,对吧?于是当stride为S时,kernel可以滑动的次数就是⌊(L-K) / S⌋, 再加上kernel左端与向量左端对齐时的情况,输出大小就是⌊(L-K) / S⌋ + 1。首先,公式中的padding可以不用记忆,padding与否,不影响公式的逻辑,对吧?这里讲一下自己的记忆方法,供大家参考。原创 2025-10-10 14:39:24 · 125 阅读 · 0 评论 -
RCNN系列边界框回归损失函数
但就像神经网络中的各种normalization一样,如果能够保证dx稳定在-1到1之间,训练效果就会更好,因此就用这个归一化后的值乘以Pw,就变成公式(1)了。笔者一开始有点认不出这个公式是怎么来的,但是细想一下,也比较自然。1.实现尺度不敏感(Scale-Invariant)的回归。候选框x坐标+回归值=预测值,是不是更自然?以上4个公式是RCNN论文附录C中的。2.保证预测的宽高为正值。原创 2025-09-26 14:04:57 · 657 阅读 · 0 评论 -
使用FPN进行语义分割,最小可行性demo
笔者发现还是得多看代码,看论文是不明白很多细节的。比如,看了这个代码之后才知道,FPN特指对backbone(res50)进行特征提取的那一部分网络,而不是“res50+FPN=backbone”。的输入是FPN的四个多尺度特征。原创 2025-07-28 14:58:57 · 345 阅读 · 0 评论 -
layernorm1d(只有一个特征)的python代码示例
【代码】layernorm1d(只有一个特征)的python代码示例。原创 2025-07-05 17:43:13 · 128 阅读 · 0 评论 -
vit如何由patch得到embedding
这是最关键的一步,它让卷积核在计算完一个Patch后,直接“跳”到下一个不重叠的Patch上。卷积核数量 (Kernel Count): 设为 768。这决定了每个Patch最终生成的嵌入向量维度。个图像块 (Patch) 的嵌入向量。这个原理的核心,是巧妙地利用单次卷积操作,同时实现“切块”和“特征提取”两个任务。的卷积核以16的步长滑过整个图像时,其输出就是一个。这确保了卷积核的“视野”恰好覆盖一整个Patch。Patch的嵌入表示 (Embedding)。的RGB图像,我们的目标是得到。原创 2025-07-03 18:41:35 · 499 阅读 · 0 评论 -
关于windows中5070ti显卡不被torch支持的问题
(推荐运行cmd时以管理员权限运行,不然执行上述pip命令时,可能会遇到**[WinError 5]拒绝访问**这个错误。新买了5070ti,发现sm120无法被sbale版本的pytorch支持。解决途径也比较简单,和。4.复制这个包的本地地址为【本地地址】,在你的新环境中。1.conda创建python=3.9的新环境。说法基本一致,个人总结为如下三点。原创 2025-06-19 12:01:08 · 979 阅读 · 0 评论 -
NNLM和word2vec的区别
将前N个词的embedding拼接起来得到向量,将该向量首先通过一个隐藏层,再映射到大小为V的线性层,进行预测即可。而word2vecz则去掉了隐藏层。此外,CBOW不再采用拼接的方式,而将N个词的embedding直接进行相加。原创 2025-06-04 18:23:18 · 235 阅读 · 0 评论 -
关于词向量的思考
最近刚学习。NNLM网络在训练过程中为每个单词生成了一个词向量,但从表示每个单词语义信息的的角度来说,生成质量不佳,于是有了后来的word2vec,转么学习高质量的词向量表示。.4f.4f可以发现,word2vec网络更简洁了。原创 2025-05-15 18:56:27 · 340 阅读 · 0 评论 -
pytorch nn.RNN demo
可以看到,nn.RNN默认会输出两个张量:一个是最后一个时间步的所有层,一个是最后一层的所有时间步。它是不会输出“所有时间步的所有层”的。原创 2025-05-15 17:13:12 · 412 阅读 · 0 评论 -
pytorch RNNCell
可以看到,每一次把输入送入RNNCell的过程,就是把输入部分和隐藏状态部分分别经过简单全连接层,并接上激活函数的过程。pytorch RNNCell的一次前馈本质上就是一个线性层。原创 2025-05-15 00:58:29 · 341 阅读 · 0 评论 -
NNLM神经网络语言模型总结
一开始还以为很复杂,总结一下就是:NNLM 将某个单词前 n−1 个词各自转为 embedding,拼接成一个 (n−1)⋅d 维的向量,再通过隐藏层 + 输出层 + softmax,预测下一个词的概率分布可以发现,这个2003年提出的模型在架构上和GPT,都是用之前的文字预测下一个文字;都是用之前文字的embedding经过一个特殊层(前者是FFN,后者是transformer decoder)来得到一个词表向量,根据向量的分量大小选择某个单词。原创 2025-05-14 17:26:38 · 393 阅读 · 0 评论 -
【bag of n-grams】 N-gram词袋模型 简介
Bag of n-grams是Bag of Words的扩展,它的核心思想是:忽略语序,只统计各个 N-gram 在文本中出现的次数或是否出现。原创 2025-05-13 20:39:37 · 459 阅读 · 0 评论 -
Sliding Window Attention(Longformer)
最简单的自注意力大家肯定都会啦。但这种全连接的自注意力(即每个 token 需要 attend 到输入序列中的所有其他 token)计算与内存开销是On2。为了缓解这个问题,研究者们提出了 Sliding Window Attention。原创 2025-05-05 22:48:16 · 1246 阅读 · 0 评论 -
Rotary Positional Embedding代码实现思路讲解
原理。原创 2025-05-05 17:19:30 · 1824 阅读 · 0 评论 -
pytorch checkpointing
是一种在训练深度神经网络时通过增加计算代价来换取显存优化的技术。它的核心思想是:在反向传播过程中动态重新计算中间激活值(activations),而不是保存所有中间结果。这对于显存受限的场景(如训练大型模型)非常有用。原创 2025-05-05 14:24:14 · 500 阅读 · 0 评论 -
batch normalization和layer normalization区别
Normalization无非就是这样一个操作:其中x是输入数据,维度为(B,T,C),其中B是batchsize,T是序列长度,C是embedding维度;括号内是标准化操作,γ和β是仿射变换参数。原创 2025-05-03 22:30:05 · 483 阅读 · 0 评论 -
Rotary Positional Embedding
当embedding维度为2时,position的位置每往后一个,就把embedding对应维度旋转θ角度,这就是RoPE的核心思想。问题:理论上讲,位置1,2对应的PE应该在距离上比位置1,500的PE更接近,但APE做不到这一点。的操作是完全一样的(如果去掉Attention Is All You Need中的PE的话)。解决了APE中的问题,但也带来了计算效率低下等问题。而矩阵的第一项,就是把矩阵做一个简单的旋转,这一点我们已经提到过了。矩阵乘法的后两项,就是把二维的embedding映射到。原创 2025-05-03 20:57:05 · 1052 阅读 · 0 评论 -
多头注意力FLOPs计算
假如矩阵A维度为m*n,矩阵B维度为n*p,那么二者相乘,得到C矩阵m*p,其中每个元素需要计算n次乘法和n-1次加法才能得到。也就是说,在一次矩阵乘法中,FLOPs为。原创 2025-04-30 16:26:05 · 446 阅读 · 0 评论 -
Precision-Recall曲线
这里和ROC曲线有一点不同:我们的虚线并不是”随机猜“的曲线,而是将所有样本都分为正类的曲线。另外,Precision和Recall都是越大越好。同样地,真实曲线(蓝色曲线)越靠近右上角越好。那么,我们同样可以用AUC来衡量真实分类器曲线的性能,一般分类器的性能同样是0.5到1之间的一个值。原创 2025-04-26 10:55:00 · 399 阅读 · 0 评论 -
ROC 曲线 和 AUC
而二元分类时输出的是0~1的概率,那么threshold的选取不同,就会导致不同的分类结果。于是,我们分别选取多个不同的threshold,就会得到多个不同的二元组(TPR,FPR),从而绘制出点图。注意,ROC曲线一定会经过(0,0)和(1,1)两点,代表全部分类为负和全部分类为正的结果。也就是说,(TPR,FPR)离(0,1)越近越好。不难观察到,紫色曲线的AUC,也就是在0到1区间上的积分为1,虚线(乱猜)的AUC为0.5,一般分类器的AUC在0.5到1之间。TPR越大越好,FPR越小越好。原创 2025-04-26 10:33:11 · 350 阅读 · 0 评论 -
怎样记忆Precision、Recall?
现在对所有样本进行预测。其中蓝色圆圈以内预测为正,蓝色圆圈以外预测为负。其中大矩形表示所有样本,左边的矩形表示正样本,右边的矩形表示负样本。FP(False Positive):标签为负,预测为正。FN(False Negative):标签为正,预测为负。TN(True Negative):标签为负,预测为负。TP(True Posive):标签为正,预测为正。Precision:TP在圆形中的比例。Recall:TP在左边矩形中的比例。TP+FP:预测为正的所有样本。TP+FN:标签为正的所有样本。原创 2025-04-24 22:17:47 · 441 阅读 · 0 评论 -
R-CNN,Fast-R-CNN-Faster-R-CNN个人笔记
注:此博客主要为了方便笔者快速复习,只讲大致框架,只讲推理,不讲训练,因此内容不会很详实。原创 2025-04-24 20:14:49 · 754 阅读 · 0 评论 -
Grouped Query Attention (GQA) PyTorch实现
一旦读懂了MQA,GQA的实现思路几乎完全一样,只是多用了一个不太常用的函数。关于这个函数,直接点击链接看笔者相关文章就行了,挺好懂的。为了读懂GQA,建议读者了解一下。的实现,这样顺着读下来会更顺手。原创 2025-04-19 17:38:38 · 797 阅读 · 0 评论 -
Multi-Query Attention (MQA) PyTorch 实现
和多头注意力机制的唯一区别:K、V在不同的head之间实现了复用,而对于不同的头,Q依然不同。原创 2025-04-19 10:56:30 · 496 阅读 · 0 评论
分享