自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 对象的属性可以是函数,且调试的时候会显示对象的属性,如果是函数的话就不显示了

在调试的时候不显示grad_fn属性。

2025-08-22 17:03:14 16

原创 各层的初始化。层在init中只为创建线性层,forward的对线性层中间加非线性运算。且分层定义是为了把原本一长个代码的初始化和运算放到一个组合中。

为什么要定义这么多类和forward函数呢?就是为了把一长串代码中的初始化放到整个类的初始化中,然后操作放到这个类定义的方法中。当outputs = model(images),模型被使用的时候才调用各个定义层时的forward函数,调用顺序如下,model = SimpleViT().to(device),创建模型的时候,会弄出所有层。init注意有几个层,这里有四个层,接下来在forward函数中会把这四个层都用上。

2025-08-20 23:37:50 170

原创 python中view把矩阵维度降低的时候是什么一个排序顺序

以这个为例。原来是缩小维度后其实从最后两个维度,矩阵变成向量就能看出来了,

2025-08-20 22:24:27 153

原创 unfold 切图像,图形transformer的切割操作

第一次切,切高度维度,但是切完做了转置 ,得到(1,1,2,12,4)切宽度 得到 张量维度1 1 2 3 4 4 最后得到。

2025-08-20 21:30:17 139

原创 生成器,不同于正常返回的对象。比如model.named_parameters()看模型可训练参数的返回值

好的,我们把这个问题拆开,用简单例子说明和。

2025-08-19 16:22:27 283

原创 图像transformer 里面的位置编码模块

对于线性变换层,把每一个原始的块维度变大,比如变到12维,此时这个层的形状就是8*12。比如图像分成8块,每一块变成10维向量就是8*10。首先,矩阵都是分块数目*分块的size。

2025-08-19 16:18:23 89

原创 from import 引入的是类,from是文件夹下的一个python文件。init方法

下面init函数的所有东西,除了.调用函数。哪个EncoderLayers(a,b)是类的实例化.注意call方法只是对象使用的。所以这段init里面,transformer_layers文件如下。

2025-08-19 14:37:54 97

原创 调试窗口的黄蓝杠杠是什么?

2、蓝色用来表示对象里的元素,但这个元素是基础的元素对象,不是复杂对象。这样的对象,在显示的时候默认为不可展开。首先,python显示的任何东西都不叫变量,叫对象。其中item不是个复杂对象,但是一种有结构的简单对象。可见黄色杠是包含的复杂对象。

2025-08-19 14:06:32 192

原创 变量调试窗口中可以展开的都是可以加.调用的

调用其中的transforms,这其实也是个对象。属性返回的也是个对象。

2025-08-19 00:28:27 110

原创 一般情况下,python函数都会返回对象,但有时只调用一个函数,这是在修改这个信息

所以:不返回对象的只有两种情况,1、改自己的参数值 2、改别的对象的参数值(需要传入)m.eval()是在修改m的信息。

2025-08-19 00:11:02 169

原创 在python中等号左边的都是对象,在matlab中等号a = 3+2 a就是个变量

这里 transform就调用了call方法,等号左边的tensor是一个对象。

2025-08-18 22:04:30 169

原创 二进制为什么使用记事本读取会出乱码

把高低电平用数字01表示 就读取成0-1形式,8为一个字节(即8位为一个数字0-255)就读取成8进制的形式。或者读取16个高低电平显示出来作为16进制数字(计算机读取8的整数倍(字节)电平,用来显示)高低电平是0-1,8个为一组读取成数字,再使用编码规则把数字映射成字符。文件其实都是电信号,没有真正的 0 1 数字,有的只是高低电平。

2025-08-16 22:18:12 222

原创 backward怎么计算的是torch.tensor(2.0, requires_grad=True)变量的梯度

loss.backward就会求梯度,并保存到w.grad中。自定义的类想要直接计算乘法需要写函数。

2025-08-16 13:40:37 261

原创 继承tensor的类。print还是tensor,然后多了梯度信息的原始代码表示。+变量窗口解释

super().__init__(data)和self.data是一样的,都是让其有一个data参数,第一种方法在多个参数的时候不用重新写了。花括号里的是类的名称 后面的白字是自定义的打印信息 由repr函数决定。

2025-08-15 14:11:44 155

原创 已知transformer中QKV的运算,在代码中实现比较复杂抽象,解释一下。 注意高维张量的树状图表示:无论转置还是乘积操作都可以用树状图表示,且第三个维度head(用来分成小块矩阵

qkv.view→ 把 Q/K/V 拆开成→ 拿到 q/k/v→,heads 放在前面,方便并行→ 每个 head 单独矩阵乘,得到每个 head 的矩阵都是它自己 token 间的注意力分数,不混头补充:本文出现了使用二维矩阵表示高维张量的方法,其实就是树状图,无论转置还是乘积操作都可以用树状图表示,且第三个维度head(用来分成小块矩阵)矩阵乘法后也可以用树状图表示。重要的是head在第三维度,这样才能是head分块的矩阵进行矩阵乘法。

2025-08-14 22:19:31 713

原创 用两个自由度就可以描述向量的方向,但为什么描述飞机需要三个自由度

对,你说的没错——如果我们只是想,确实只需要两个旋转,第三个旋转是完全多余的。

2025-08-14 20:09:18 665

原创 为什么score矩阵要直接乘V矩阵

因为socre第一行代表第一个词对自己的关注度,和对第二个词的关注度。最好理解为,要关注第几个单词的程度。然后这个分数矩阵和V矩阵相乘就相当于行分块。在本文里,不叫单词,叫token。重点:为什么score矩阵乘V?

2025-08-14 01:37:57 106

原创 QK怎么内积的?元素横着,所以每个元素内积就要转置

Q每个最小元素都是横着的, K每个元素也都是横着的,想要Q与K每个元素都内积所以K要转置。注意Q就相当于一个矩阵,元素就是行,Q就相当于一个列向量。

2025-08-14 00:10:51 105

原创 python print 打印出来的只是描述,不是其中的量

对,你抓住重点了。当你print()一个对象(比如生成器、类实例、模型、甚至张量),,并不是对象本身的所有内容。

2025-08-13 00:31:37 380

原创 qkv和注意力头

第一行是第一个头乘k的所有头,第二行是第二个q的第一个头乘k的所有头。

2025-08-13 00:02:42 348

原创 transformer输入句子的批次、时间步、词

好的,我直接用帮你把batch_sizeseq_lend_model都搞清楚。

2025-08-12 13:52:25 226

原创 init中的可以省略吗,运行函数的时候不回到init了

int的时候定义的self.mha 调用forward函数的时候才能直接用。

2025-08-12 13:44:05 81

原创 红色高亮 self

result = self.val + x # 这里self和x有时都会高亮。self.val = val # 这里调试时,self通常会红色高亮。

2025-08-12 13:42:02 122

原创 python打印变量得到的信息,里面打印什么是repr函数定义的

变量窗里的。

2025-08-12 03:03:17 308

原创 python红色高亮哪些东西?调试

print(a) # a 没定义断点处如果变量未定义,调试器显示红色提示变量错误。情况变量红色原因备注函数参数调试器语法高亮,标记输入参数正常,不代表错误覆盖内置函数名提醒潜在风险建议避免未定义变量错误提示代码需修正只读变量(常量、参数)标记为不可修改正常变量值异常提醒可能异常关注变量值如果你需要,我也可以帮你做一个演示代码和截图说明,你看怎么样?

2025-08-12 02:46:30 294

原创 调试器,变量红色高亮,代表变量是当前参数

运行到 super().__init__()时,变量窗口可见。红色表示这两个是输入的参数。

2025-08-12 02:45:58 94

原创 python打印模型,得到的是结构,被包含的类叫做模块

class SimpleModel(nn.Module):def __init__(self):super().__init__()self.linear = nn.Linear(3, 2)def forward(self, input):return self.linear(input)model = SimpleModel()SimpleModel( (linear): Linear(in_features=3, out_features=2, bias=True))(linea

2025-08-12 02:21:59 172

原创 python打印出来的就是变量调试器里显示的东西

%%%python打印就是你看到的变量调试器里面显示的东西%%%%%print("\n模型 model 的打印结果:")print("张量 x 的打印结果:")运行结果示意(格式类似)

2025-08-12 02:15:28 390

原创 python不用mean(X)而是x.mean()

en。

2025-08-12 02:01:46 264

原创 误差与相关系数

2025-08-10 13:30:43 356

原创 图标网站免费

https://www.flaticon.com/?log-in=email

2025-08-09 20:08:14 91

原创 扣证件照要点

1、通道抠图总是扣出半透明的选区,这是通道头图 ctrl+通道建立选区的特性,所以一定要把通道中需要抠出来的变成黑色,背景变成白色。2、对于整个人物,将所有细节都变成黑色不现实,

2025-08-09 16:41:44 158

原创 高维矩阵运算,实际是最后两个维度组成的矩阵对应相乘

【代码】高维矩阵运算,实际是最后两个维度组成的矩阵对应相乘。

2025-07-20 21:09:05 300

原创 张量交换维度(转置),其实是交换了元素的排列顺序

其中的元素按照新的顺序排列后,分组,就是交换后的结果。

2025-07-19 23:41:29 179

原创 transpose python的转置

张量就话树状图,然后这个转置是把数的最后的节点化成矩阵,矩阵转置。

2025-07-19 16:05:11 127

原创 PYthon快速看懂张量只需要看懂最小元素组就行,然后画树状图。

x = torch.randn(2, 3, 4),是4维向量组成的。

2025-07-19 15:48:43 77

原创 unbind指定维度拆分张量

才分的时候,把这个维度下的都看作整体。

2025-07-19 00:39:44 97

原创 view就是重新变换形状,看最后一个形状大小就行了

看变换形状的最后一个3就行了,每三个一组分开的,

2025-07-19 00:31:44 147

原创 调试的时候,单步调试会跳过库中定义的函数,但手写的并不会,可以简单理解为库文件夹被pycharm识别了,为了调试方便不进入

这种手写的,单步调试不会跳过。

2025-07-18 23:25:49 77

原创 python 类里调用的方法不需要定义在类中,可以单独定义在外面

【代码】python 类里调用的方法不需要定义在类中,可以单独定义在外面。

2025-07-18 22:10:48 107

K矩阵改变传输斯托克斯适量

K矩阵改变传输斯托克斯适量

2024-11-28

空空如也

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

TA关注的人

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