自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PyTorch-Lightning:trining_step的自动优化

在自动优化中,training_step必须返回一个tensor或者dict或者None(跳过),对于简单的使用,在training_step可以return一个tensor会作为Loss回传,也可以return一个字典,其中必须包括key"loss",字典中的"loss"会提取出来作为Loss回传,具体过程主要包含在lightning\pytorch\loop\sautomatic.py中的_ AutomaticOptimization()类。

2024-04-11 23:36:49 1110 2

原创 pytorch图像数据集定义

_ __ getitem__ 通过传入的索引加载指定路径的数据,路径常常是一个列表,如很多张图片组成的数据集,需要在初始化时定义函数得到路径列表,或者在外部定义,总之要得到一个路径List。对于图像数据集来说,首先是在Dataset类对数据集进行定义,一般来说不定义transform,则数据为PIL Image,PIL格式到tensor的转换也是transforms变换的一种,所以定Dataset+transforms+Dataloader,最后在训练部分to(device)来得到模型的输入。

2024-03-23 23:51:48 1063 1

原创 VPCFormer:一个基于transformer的多视角指静脉识别模型和一个新基准

现有的血管模式映射实际上把一个3D网络拓扑映射到一个2D平面,不可避免地导致3D特征损失和2D图像的拓扑模糊性。除此之外,基于单视角的方法在实践中对于手指旋转和平移十分敏感。为了解决这些问题,我们首先建立了一个基准通过建立多视角指静脉数据库,名为清华多视角指静脉3视角(THUMVFV-3V)数据库,收集了两期的数据。THUMVFV-3V提供了三种ROI包括统一的处理过程。进一步,我们提出了一种新的基于Transformer的模型血管模式受限编码器(VPC编码器)和近邻视角模块(NPMs)。

2024-03-21 23:45:56 1660

原创 探索多视角驱动的层次内容感知网络用于指静脉识别

这是一个基于深度学习的指静脉识别方法。从任务类型上来说是分类任务。具体来说是多视角方法。把问题分解为特征提取和最后的分类映射,而单纯的2D特征显然不够充分,受到很多因素影响,因此研究多视角3D特征学习是有意义的。中心思想依然是围绕特征,作者将特征分为局部和全局特征,形成层次。因为有研究表明,加入局部特征可以使最后的特征分辨力更强。全局特征使用循环神经网络一个双向CNN-GRU提取,将输入的不同视角的图片作为按一定顺序的图像序列进行处理,为了避免视角顺序的影响,所以使用了双向网络,分为前向后向。

2024-03-20 16:39:55 1134

原创 三维指静脉生物识别成像设备设计和多视图验证研究

这是一个基于深度学习的指静脉识别方法。从任务类型上来说是分类任务。具体来说是多视角方法。整体结构的组件来说,相比EIFNet,加入了Transformer编码器。思路上来说和多视角方法HCAN相似,将特征分为全局特征和局部特征两类,全局特征更多指视角间特征,局部特征更多指视角内特征。最后特征是两类特征的聚合。全局特征即将所有视角图片看作整体,研究其属性,比如视角间的关系。而局部特征是单张图片内的纹理等特征,选出评分最高的两个特征作为代表性的特征信息。然后和全局特征进行聚合。

2024-03-19 22:40:32 1292

原创 显隐特征融合的指静脉识别网络

这是一个基于深度学习的指静脉识别方法。从任务类型上说是分类任务。传统方法分为显式和隐式方法,这里的显式和隐式应该是从人的角度或者说人眼的角度,如血管分割二值掩膜这种人可以清楚识别并且理解其含义的就是显式特征。那么以人为例,首先识别出容易清晰的容易理解的特征,然后根据这种特征完成匹配,是直觉性的做法。因此从直觉上来说给网络提供一个显式特征,或者说给网络的特征提取规定一个良好的标准答案,会增强效果。因此为了得到二值掩膜这一补充信息,要通过一个U-net做一个分割任务。

2024-03-18 20:30:30 1255

原创 双向SSM: Vision Mamba Encoder

和原始论文一致,如果不选择use_fast_path,则会在这里计算完整个流程,而不是定位到selective_scan_interface中定义的函数,而是计算出SSM参数后再调用selective_scan_interface中定义的selective_scan_fn(),SSM数据依赖的参数有参数映射x_proj得到x_db1,然后切分得到B, C,delta参数。而是直接翻转后相加。mamba_inner_fn_no_out_proj 即相比于原始的mamba_inner_fn缺少了输出映射。

2024-03-16 22:36:40 2517 4

原创 VSSM VMamba实现

图中的SS2D和SS2D类的定义有偏差,简单来说是是包含SS2D块加一个残差连接,图中所示SS2D应表示状态空间模型SSM部分,即VSS块相比SS2D块只增加了残差连接和入口的归一化。对于ssm分支来说,其输入输出维度不变为(B, H, W, d_model) ,对于mlp分支来说中间的隐藏维度根据mlp_ratio参数定义会有所增加,但是最后又会映射为原来的维度,因此整体上并不改变输入的维度。下采样模块,通过2D卷积之后,长宽变为原来的一半,通道数不变。,嵌入后通道维变为96,

2024-03-14 23:14:57 3150

原创 VMamba:SS2D的实现

VSSM的核心是VSSBlock,VSSBlock的核心是SS2D,因此这篇文章主要介绍SS2D块,而且仅仅是简单梳理,不涉及原理解释,其中对变量所做的旋转翻转操作,应与交叉扫描机制有关。其与标准SSM多出的K参数,应该也与交叉扫描机制有关,理解能力有限,欢迎指出错误。

2024-03-13 23:07:46 5317 10

原创 【论文阅读】Vision Mamba:双向状态空间模型的的高效视觉表示学习

在这篇文章,我们展示对于视觉表示学习,不再依赖自注意力,提出一个新的泛用的视觉backbone基于双向Mamba块,通过位置嵌入来标示图片序列,通过双向状态空间模型压缩视觉表示。结果表示,Vim有能力解决在高分辨率图片上应用tranformer类型所导致计算和存储限制,有潜力成为下一代视觉基础模型的backbone。最近的工作,Mamba引入时变参数到SSMM而且提出一个硬件感知算法以保持其高效训练和推断,Mamba优秀的缩放表现表明在语言建模是Transformer的有前景的替代。

2024-03-13 22:58:51 2548 4

原创 【论文阅读】VMamba:视觉状态空间模型

受最近提出的状态空间模型启发,我们提出了视觉状态空间模型,在不牺牲感受野的情况下实现线性复杂度。为了解决遇到的方向感知问题,我们提出了交叉扫描模块(CSM)以遍历空间域并将任何非因果视觉图像转换为有序补丁序列。广泛实验结果说明VMamba不仅在多种视觉感知任务上取得优秀的成果,在不断提升图像分辨率训练表现上也展现了明显提升。VMamba在有效降低注意复杂度的关键概念来自选择性扫描状态空间模型(S6),原本被提出用来解决NLP问题。

2024-03-11 22:37:39 2951

原创 Mamba.py: 状态空间模型的并行扫描

一个扫描定义为一个操作,把一个矩阵作为输入,产生一个矩阵作为输出。我个人理解:系统的输入或者说外部环境随时间变化,而我们系统也要随之不断更新,不断将这些变量“扫描”进去,因为我们只能处理离散信息,所以我们会有一个采样步长Δ\DeltaΔ,我们根据这些外部信息更新我们所需要的量,比如我们的输出量,控制量。扫描是外部变量的扫描,也是内部变量的扫描,所以在我看来,扫描的同义词是更新,扫描就是根据输入更新状态空间模型的参数和输出。下面是一个因果卷积网络。

2024-03-10 17:15:20 2129 4

原创 Mamba-minimal Mamba的最小限度实现 (二)

lm_head层则是预测下一个token的输出层,它将模型的输出映射到一个概率分布上,以便于模型预测下一个token,权重和Embedding公用。这里是剩余部分介绍,主要包括利用MambaBlock和其他组件如残差连接,归一化等定义一个序列模型。相比,为了可读性对参数没有很好的初始化,原论文用CUDA写了并行扫描,所以速度会快。一个完整的序列处理Mamba模型,包含多个被包裹的MambaBlock。一个包裹MambaBlock的一个残差块。在概率为top-k的输出中采样。来自demo.ipynb。

2024-03-09 17:03:09 964 1

原创 Mamba-minimal Mamba的最小限度实现 (一)

manba的简单最小限度实现,和原始论文实现state-spaces/mamba (github.com)](https://github.com/state-spaces/mamba/tree/main)相比,为了可读性对参数没有很好的初始化,原论文用CUDA写了并行扫描,所以速度会快。之后的数据尺寸以(b, l, d_in) 或者(b, l, d_model, d_state)简单表示。这是我们数据处理流水线的搭建,这一部分是ssm模型参数定义,是ssm模型中相对于数据“不变”的部分。

2024-03-08 23:58:54 1865 1

原创 【论文阅读】Mamba:选择状态空间模型的线性时间序列建模(二)

我们的简化块设计结合了H3块,H3是大多数SSM结构的基础,有现代神经网络中无处不在的MLP块。因此,虽然选择机制可以被视为架构门控、超网络或数据依赖性等思想的特例,但大量其他结构也可以——基本上是任何具有乘法运算的结构,也包括标准注意力机制,但我们认为这样没有信息量。如在部分3.1讨论的一样,选择性最重要的属性是过滤掉我们不相关的信息以使一个序列模型的内容可以被压缩到哟个有效的状态。选择机制是一个广泛的概念,可以以不同的方式应用,例如在更传统的RNN和CNN,在不同的参数(例如算法2中的。

2024-03-05 22:30:42 1469

原创 【论文阅读】Mamba:选择状态空间模型的线性时间序列建模(一)

最近,结构化状态序列模型成为一类有前景的序列建模结构。这些模型可以被解释成循环神经网络和卷积神经网络的结合,从经典状态空间模型中获得启发。这类模型可以被高效计算无论是卷积还是递归形式。但在建模离散和信息密集的模态如文本时没有那么有效。我们提出一类新的选择性状态空间模型。选择机制首先,我们得出先前模型的一个关键不足:以依赖输入的范式高效选择输入的能力。(即关注或者遗忘特定输入)。我们设计了一种简单的选择机制,通过基于输入来参数化SSM参数。无限地遗忘不相关信息或记忆相关信息。硬件感知算法。

2024-03-04 20:12:38 2272

原创 【论文翻译】结构化状态空间模型

当可能的时候,对角SSM在实际中使用是理想的因为它们的简单和灵活。然而,它们的强结构有时太过限制。特别是,Chapter 6将会说明基于HIPPO矩阵的重要SSM类(Chapter 4 和 5)不能在数值上表达为对角SSM,而使用一个对角结构的拓展替代。除了和部分二中的特殊SSM的关系,这个重参数化背后的想法和算法理论上是独立的,在之后的序列模型中会用到3.6.2。的第三章的部分翻译,为了解决计算上存在的代价问题,引入了结构化状态空间模型,介绍了对角结构化状态空间模型和低秩对角结构化状态空间模型。

2024-03-03 20:37:22 1385 1

原创 【论文翻译】SSM状态空间模型卷积和循环模式表达的解释

特别是,卷积表达是通过展开一个特定的LTI递归,这表明,只有卷积中受限制的一类可以表达为一个SSM,然而经典的结果表明几乎所有的卷积实际上都可以表达为一个SSM。然而,我们强调,这些概念上的联系得到了实质性的支持,经验证据表明,深度新型SSM/RNN的性能优于经典RNN。总的来说,SSM和这些流行的RNN模型都可以被看作近似于相同类型的潜在连续动力学,通过使用深度方向上的非线性近似和离散化(gates)和早时间方向上的离散化(gates)我们展示了 了两个和RNN和ODE相关的结果,可能引起广泛的兴趣。

2024-03-02 20:01:10 1148

原创 【论文翻译】SSM状态空间模型的循环和卷积模式

总之,SS(S)M层作为序列模型的前向传播由一个离散化步骤构成,接着不同的等价方法计算离散SSM。我们称之为第一离散化的计算图之后是2.5为循环模式,相似地,我们称第一离散化的计算图和计算式2.7为卷积模式。Remark 2.4我们有时把这些简称为“RNN”模式和"CNN"模式。注意一层SSSM层并不是真正的神经网络-仅仅是一个线性序列变换-因此它们本身并不是一个RNN或者CNN。Remark 2.5这部分展示了从循环角度的离散化, 之后从展开递归推导离散卷积形式。

2024-03-01 17:09:20 1429 1

原创 【论文翻译】Mamba 中的状态空间模型背景

对应于Mamba作者博士论文的第二章状态空间模型背景部分翻译。Mamba 中的状态空间模型背景。

2024-02-29 15:13:45 1349

原创 【论文翻译】MODELING SEQUENCES WITH STRUCTURED STATE SPACES 附录A.1

我们考虑一个标准一个一阶初值问题(IVP)常微分方程(ODE)情形用于一个连续函数ftxf(t,x)ftxx˙tftxtxt0x0x˙tftxt))xt0​x0​这个微分形式有一个等价的积分形式xtx0∫t0tfsxsds​xtx0​∫t0​t​fsxs))ds​。

2024-02-28 17:53:21 573

原创 【论文翻译】MODELING SEQUENCES WITH STRUCTURED STATE SPACES 第一章

考虑一个输入函数utu(t)ut,一个固定的概率测度wtw(t)wt和一个N个正交基函数如多项式函数的序列。在每个时刻tttuuu在时刻ttt之前的历史可以被投影到这个基上,产生一个系数向量xtx(t)xt表示uuu的历史相对于所提供度量www的最优逼近。函数ut∈Rut∈R到系数xtx(t)xt的映射成为关于度量www的高阶多项式投影算子。在很多情况下,它的形式是x′AxtButx′AxtBut以及A。

2024-02-27 15:47:17 937

原创 torch.utils.data.Dataset

表示一个数据集的抽象类,Map-style的数据集都应该是它的子类,并且重写,支持给定key值获取数据,重写__len__()以应用和的默认选项,返回数据集的尺寸。子类也可以应用来加速批次样本加载,这个方法接受批次样本的索引列表,返回样本的列表。

2024-01-27 23:52:58 913

原创 torchvision.datasets的三个基础类

torchvision.dataset中为自定义数据集提供的三个基础类DatasetFolder, ImageFolder和VisonDataset, 这三者除了均为torch.utils.data.Dataset()的子类外,它们之间也存在继承关系。其中VisionDataset定义于datasets/vision.py,DatasetFolder和ImageFolder定义于dataset/folder.py。

2024-01-26 23:36:51 1303 1

原创 torchvision.datasets

torchvision是PyTorch项目的一部分,由流行数据集,模型结构和计算机视觉的常见图像变换构成。这篇文章介绍第一个部分,数据集部分。

2024-01-25 13:39:49 1252

原创 Pillow(PIL Fork) Image模块

Image.Image.load() 当需要像素数据时,会调用load(),当前帧读取到内存中,任何基于其他图像创建的图像会内部调用原图像load()然后读取数据。如果是单帧图像,在当前帧读取后需要关闭文件,多帧图像(TIFF,或GIF)保持打开,正常情况下不需要调用,图像类会自动加载。包含PIL.Image.new(),PIL.Image.fromarray(), PIL.Image.frombytes(),PIL.Image.frombuffer()等。当文件关闭后,需要文件访问的操作会失败。

2024-01-24 19:59:19 922

原创 torch.nn.functional.pad()

用于对张量进行填充。

2024-01-23 12:20:30 1702

原创 torch.nn.ModuleList()

与Module, ModuleDict, Sequential同属于容器和通常的python list一样进行append, extend, insert操作,但是参数会自动注册。

2024-01-22 12:07:38 605

空空如也

空空如也

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

TA关注的人

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