自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 图像分割论文阅读:BCU-Net: Bridging ConvNeXt and U-Net for medical image segmentation

本文提出了一种集合ConvNeXt和U-Net优势的网络模型来分割医学图像。当然,模型整体结构就是并列双分支,如果只是这些内容,不值得拿出来讲。multilabel recall loss module,简称MRL。

2024-08-23 23:38:24 384

原创 PyTorch构建模型网络结构的6种方式

PyTorch提供了多种方式来构建模型的网络结构,我尝试总结一下,有如下6种常见方式(可能还有我没注意到的,欢迎补充)。我们平时写代码并不一定需要掌握全部方式,但是多了解一些,对于阅读理解别人的代码显然是有帮助的。

2024-08-23 13:20:18 867

原创 论文阅读:自适应ViT(A-ViT)

本文来自cvpr 2022 :介绍了一种名为A-ViT(Adaptive Vision Transformer)的新方法,旨在通过自适应调整Vision Transformer的推理成本来适应不同复杂度的图像。

2024-06-16 23:39:23 927 1

原创 论文阅读:基于谱分析的全新早停策略

来自JMLR的一篇论文,这篇文章试图通过分析模型权重矩阵的频谱来解释模型,并在此基础上提出了一种用于早停的频谱标准。

2024-06-16 00:03:08 1378

原创 论文阅读:H-ViT,一种用于医学图像配准的层级化ViT

来自CVPR的一篇文章,用CNN+Transformer混合模型做图像配准。可变形图像配准是一种在相同视场内比较或整合单模态或多模态视觉数据的技术,它旨在找到两幅图像之间的非线性映射关系。

2024-06-13 22:53:07 1250

原创 论文阅读ReLU-KAN和Wav-KAN

这是我读KAN系列论文的第三篇,今天把两篇论文放在一起写,分别是:Wav-KAN:之所以放在一起,是因为这两篇论文针对KAN的改进思路是相似的,都是采用新的基函数,来替代KAN中的B样条函数。

2024-06-12 23:59:48 601

原创 论文阅读Rolling-Unet,卷积结合MLP的图像分割模型

2)接着,在Rolling操作之后,R-MLP在每个空间位置索引 (hi,wj) 上执行带有权重共享的通道投影,以编码长距离依赖性。通道投影是指在特征矩阵的每个空间位置(即图像的每个像素位置)上,对所有通道的特征进行线性变换,以生成新的特征表示。通道投影的目的是将Rolling操作后的多通道特征进行整合和编码,以捕获长距离依赖性。在Rolling操作之后,每个空间位置的特征图可能会有不同的宽度或高度特征。

2024-06-12 23:42:15 1229

原创 论文阅读U-KAN Makes Strong Backbone for MedicalImage Segmentation and Generation

在我看来,虽然本文模型大概率并不SOTA,但是也不是非要SOTA的模型和实验才有价值。本文的价值在于验证了KAN可以用于更广泛的数据集,并且在更多场景下展现了超越和取代MLP的潜力。

2024-06-11 20:20:27 2038 2

原创 论文阅读(一种新的稀疏PCA求解方式)Sparse PCA: A Geometric Approach

首先给不了解的读者补充一下稀疏PCA概念:普通PCA得到的主成分有大量非0的原始变量,所以主成分其实是不太清晰的。稀疏PCA通过减少构建主成分的变量数量,可以提高模型的可解释性、预测能力或降低操作成本。相比较而言,稀疏PCA更适用于需要模型解释性的场景。稀疏PCA 在普通PCA的基础上,引入了一个惩罚函数。这样做的目的是使得大部分系数变为零,从而凸现出主成分的主要部分。稀疏PCA的实现通常涉及到在标准的PCA优化问题中加入一个正则化项,以促使某些系数变为零。

2024-06-11 19:10:07 1489 1

原创 论文阅读KAN: Kolmogorov–Arnold Networks

学习了最近大热的KAN网络。

2024-06-09 20:55:04 1486

原创 论文阅读:Transformer的表示坍塌和过度压缩问题,Transformers need glasses!Information over-squashing in language tasks

本文是6月4号新鲜出炉的arxiv文章,探索了decoder-only Transformer的表示坍塌和过度压缩问题,感觉其思考很有意思。

2024-06-09 12:21:51 916

原创 论文阅读:Polyp-PVT: Polyp Segmentation with PyramidVision Transformers

这篇论文提出了一种名为Polyp-PVT的新型息肉分割框架,该框架采用金字塔视觉变换器(Pyramid Vision Transformer, PVT)作为编码器,以显式提取更强大的特征。本模型中使用到的关键技术有三个:渐进式特征融合、通道和空间注意力、自注意力。

2024-04-12 10:12:26 808 2

原创 pytorch实现胶囊网络(capsulenet)

胶囊网络分类结果不算差,在我的一些任务中train from scratch的胶囊网络就超越了imagenet1k上预训练过再finetune的vit。也超过了无预训练的VGG和resnet。(但是不如预训练过的vgg和resnet)。这样的表现放在2017年已经很能打了,没火的原因我感觉有两个:首先,由于胶囊网络迭代过程需要多次完整的特征图点乘特征图,所以内存消耗和时间消耗都是巨大的。我跑256的图时,24g显存的4090也只能把batch设置成5。另外一个原因可能是它的改进潜力不大。

2024-04-12 03:18:08 1093 2

原创 图像分割论文阅读:Automatic Polyp Segmentation via Multi-scale Subtraction Network

(利用特征差值的卷积分类模型也不少,估计是作者的灵感来源)整体结构包括编码器,解码器,编码器和解码器之间是多尺度差值模块模块(MSM),以及一个额外的不需要训练的LossNet提供额外的监督信息。3)损失函数:除了常用的分割损失(如加权IoU损失和二元交叉熵损失)之外,LossNet通过计算预测和真实标签在不同层级的特征差异来生成额外的损失(Lf)。2)为了捕获不同尺度的息肉特征,MSM通过金字塔式地连接多个SUs,这些SUs具有不同的感受野,能够计算具有不同顺序和感受野的差值特征。

2024-03-30 20:08:07 582

原创 比torchvision更强大,从timm库引用预训练模型和本地加载的方法

torchvision是大家最常用的预训练模型来源,但是其包含的预训练模型种类很少,往往并不能满足研究者们的需求。而timm库提供了一个更强大的替代选项。利用如下代码查询输出1032可知,timm内置了1032个预训练模型权重。例如ghostnet、caformer、crossvit等模型都是不在torchvision内的。

2024-03-30 07:45:30 1771

原创 如何用pytorch调用预训练Swin Transformer中的一个Swin block模块

1,首先,我们需要知道的是,想要调用预训练的Swin Transformer模型,必须要安装pytorch2,因为pytorch1对应的torchvision中不包含Swin Transformer。3,swin_b的模型结构如下(仅展示到第一个patch merging部分),在绝大部分情况下,我们可能需要的不是整个模型,而是其中的一个模块,比如SwinTransformerBlock。2,pytorch2调用预训练模型时,不建议使用pretrained=True,这个用法即将淘汰,会报警告。

2024-03-23 01:09:43 1391 1

原创 图像分割论文阅读:Adaptive Context Selection for Polyp Segmentation

模型的整体结构基于编码器-解码器框架,并且包含了三个关键模块:局部上下文注意力模块(LCA)、全局上下文模块(GCM)和自适应选择模块(ASM)。它的主要目的是在合并浅层特征时,通过挖掘硬样本来引导网络更加关注不确定性较高和更复杂的区域,从而实现层级特征的补充和预测的精细化。ASM模块接收来自前一个解码器块的输出特征、LCA模块生成的局部上下文特征以及GCM模块提供的全局上下文特征。注意力权重的计算是用对应位置解码器生成的预测图和一个事先设定的阈值(比如0.5)来计算的。

2024-03-21 02:17:44 510

原创 图像分割论文阅读:SSN: A STAIR-SHAPE NETWORK FOR REAL-TIME POLYP SEGMENTATION INCOLONOSCOPY IMAGES

这篇论文的主要介绍了一种名为SSN(Stair-Shape Network)的网络结构,用于实时结肠镜图像中的息肉分割。1)用于融合不同层次的特征,首先将三个尺度的输出特征进行连接,然后通过一个ConvBlock来融合这三个尺度的特征。采用简化的上采样操作(即双线性插值),而不是U-Net中的多阶段上采样和卷积层,从而显著降低了计算成本。1)在编码器和解码器之间的跳跃连接中使用,以补偿由于简化的上采样操作可能导致的特征损失。2)DAM包含通道注意力和空间注意力,用于细化每个残差块的输出特征。

2024-03-21 02:14:08 352

原创 国内外15款AI搜索引擎汇总

AI大模型的一个痛点就是训练数据有截止日期,例如chatgpt的训练数据截止日期是2021年10月。这导致模型回答截止日期之后产生的新闻事件或者专业知识时不够准确。目前,国内外公布了不少AI搜索引擎,现整理如下。将AI和搜索引擎结合起来,似乎是一种解决方式。之后可能也会出一期评测文章。

2024-03-20 06:24:11 1350

原创 图像分割论文阅读:PlutoNet: An Efficient Polyp Segmentation Network with Modified Partial Decoder

这篇论文介绍了一种名为PlutoNet的高效息肉分割网络,旨在减少在内镜检查中被专家忽略的息肉数量,并准确地对检测到的息肉进行分割。

2024-03-20 05:13:26 782

原创 论文阅读:LAPFormer: A Light and Accurate PolypSegmentation Transformer

这是一个基于Transformer的轻量级图像分割模型。作者们使用MiT(Mix Transformer)作为编码器,并为LAPFormer设计了一个新颖的解码器,该解码器利用多尺度特征,并包含特征精炼模块和特征选择模块,以生成精细的息肉分割掩码。

2024-03-12 16:38:40 633

原创 论文阅读:FCB-SwinV2 Transformer for Polyp Segmentation

TB模块采用了SwinV2 Transformer作为其核心,SwinV2 Transformer通过引入“残差后归一化”(residual post normalization)和修改注意力机制来优化原始的Swin Transformer。2)组归一化顺序调整:在FCB分支的残差块(RB)中,组归一化(GN)的顺序被调整,以适应SwinV2 Transformer中的残差后归一化(residual post normalization)方法。左边为原来的RB模块,右边是本文用的RB模块。

2024-03-12 16:00:28 948 1

原创 论文阅读 Stepwise Feature Fusion: Local Guides Global

PVTv2是一种用于图像识别任务的Transformer架构,它通过使用卷积操作来替代传统Transformer中的位置上的嵌入(PE)操作,以保持空间信息的一致性并提供出色的性能和稳定性。我在找论文时发现,把自己的分割模型命名为ssformer的有两个:,一个论文SSformer: A Lightweight Transformer for Semantic Segmentation中提出的一种轻量级Transformer模型,结构如下。我们要重点说的ssformer是。这个没什么太多好说的。

2024-03-11 23:34:28 531 1

原创 论文阅读FCN-Transformer Feature Fusion for PolypSegmentation

本文提出了一种名为Fully Convolutional Branch-TransFormer (FCBFormer)的图像分割框架。该架构旨在结合Transformer和全卷积网络(FCN)的优势,以提高结肠镜图像中息肉的检测和分类准确性。

2024-03-11 23:13:41 979

原创 训练保存模型checkpoint时报错SyntaxError: invalid syntax

因为我修改了一个超参数head_num,希望把这个超参数加入到checkpoint名称里,以区分每次训练保存的结果。于是增加了_{'headnum6'}。出错的原因,是 f-string 本身也是用单引号包围的,而我又在单引号内部又用了一次但引导,导致f-string产生了混淆,无法正确解析。所以只要把单引号替换成双引号就可以了。

2024-03-10 23:43:23 375

原创 pytorch实现分割模型TransUNet

TransUNet是一个非常经典的图像分割模型。该模型出现在Transformer引入图像领域的早期,所以结构比较简单,但是实际上效果却比很多后续花哨的模型更好。所以有必要捋一遍pytorch实现TransUNet的整体流程。首先,按照惯例,先看一下TransUNet的结构图:根据结构图,我们可以看出,整体结构就是基于UNet魔改的。

2024-03-10 22:02:15 5481 19

原创 对比国产大模型辅助读论文的能力,一家完胜,有两家差的离谱

试图找到一些利用免费大模型增加生产力的途径,由于chatgpt给我封号了,所以只测试了几款国产大模型。我们挑选的是在SuperCLUE山得分靠前的几款国产免费大模型:文心一言3.5,通义千问,讯飞星火,豆包,以及没有出现在榜单上,但是特点是擅长读长文档的kimi。我们读的是这篇综述类的论文,总长度是60页,文档大小是9.6MB如果AI能完全实现这两条,那么将极大帮助我们节约时间,甚至我们完全可以不用自己去看原文了。如果能实现第一条,并部分完成第二条,那就算勉强可用,可以帮助我们节约一定时间。

2024-03-09 22:20:41 4977

原创 不同框架表示图像时维度顺序的区别:pytorch、keras&tf、opencv、numpy、PIL

在TensorFlow中,对于图像数据,默认的维度顺序是 [H, W, C]。但在构建模型时,Keras允许通过data_format参数来指定维度顺序,可以是'channels_last'(即[H, W, C])或'channels_first'(即[C, H, W])。在PyTorch、Keras、OpenCV、NumPy和PIL这几个框架中,它们在表示图像时的维度存储顺序有所不同。PIL/Pillow在打开图像时,默认的维度顺序是 [W, H, C],即宽度、高度和通道数。

2024-03-09 09:35:35 717

原创 什么是deterministic training(确定性训练),pytorch如何实现

想要实现deterministic training,首先需要知道模型随机性的来源,有如下几个方面:初始化权重、数据加载的顺序、优化器的随机性、dropout、优化器的随机性(如随机梯度下降中的随机梯度选择)、CUDA的随机性等。deterministic training(确定性训练)是一种训练机器学习模型的方式,其主要特点是确保在相同的初始条件下,每次训练都会得到相同的结果。换句话说,确定性训练旨在消除随机性,使得模型的训练过程是可重复和可预测的。

2024-03-08 20:38:54 1016

原创 分割模型TransNetR的pytorch代码学习笔记

nn.TransformerEncoder的参数包括:encoder_layer(用于构建模块的每个Transformer层),num_layer(堆叠的层数),norm(执行的标准化方法),apply(同上)。可以看出来,就是Transformer模块和残差连接相加,然后再经过一个residual模块处理。其中,x1,x2,x3,x4就是编码器模块,用的都是resnet50的预训练模块。其中r1,r2,r3,r4则是解码器的模块,就是上面实现的模块。这个代码就是简单的残差卷积模块,不赘述。

2024-03-08 19:57:21 609

原创 pytorch报错:RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublasCreate(handle)

错误信息中的“Assertion `t >= 0 && t < n_classes` failed.”这句提示显示错误可能和number of classes有关。我在跑cifar10类别时,创建网络部分把num_classes设置成了6。这个报错看似是CUDA的问题,其实并不是。检查代码发现,我的代码设置的分类类别错了。

2024-03-07 21:47:02 407

原创 pytorch运行时tensorboard报错TypeError: Descriptors cannot be created directly.

这个错误主要是tensorboard版本的问题。解决办法是卸载tensorboard后重新安装。

2024-03-07 21:40:26 504

原创 魔改检测模型RFBNet用作分类的实验,含pytorch代码

改进的思路很简单,首先图像输入vgg19的前两个stage,后接一个RFB模块,最后接全局池化和FC层。实验结果还是比VGG19强的,但是这种级别的实验想发论文是不可能的,只能发表在csdn上,哈哈。RFBNet是一个比较经典的图像分割模型,该模型使用了空洞卷积、多分支融合和残差的思路。一方面是好奇,是否能提升分类结果,其次也是作为pytorch代码的日常训练。因为我本身的研究方向只有分类和分割,不做检测。所以,我尝试把这个模块融入到分类模型中。

2024-03-04 16:49:28 475

原创 图像分割IoU loss损失函数的实现代码

Intersection over Union (IoU) loss是一种用于目标检测和图像分割任务的损失函数,它基于预测结果与真实目标之间的重叠程度来衡量模型性能。其原理是通过计算预测边界框(或分割掩模)与真实边界框(或分割掩模)之间的重叠区域占两者并集的比例,来评估模型的准确性。由于IoU越高,证明分割或者检测的效果越好,那么我们只要将其取反,就可以作为优化的目标。表示模型预测的边界框或分割掩模,表示真实的边界框或分割掩模,

2024-03-02 15:23:42 1091

原创 图像分割模型R2UNet的pytorch实现代码

1,其中for循环这块就是recurrent的核心,通过将卷积层输出的结果和自身的输入相加,然后再次输入到本层的卷积之中,这样就实现了recurrent。最后,我需要提醒的是,这篇论文的结果是由争议的。我的复现只能保证理论上是正确的,最终跑出什么结果,不能保证。这里实现的是b,如果需要实现d,就在forward里把输入x也加到out上。这个模型把recurrent模块融入到UNet结构中的图像分割模型,至于效果见仁见智。3,原文中提到了两种种recurrent模块的结构,下图的b和d。

2024-03-02 11:06:57 625

原创 CNN瓶颈层的几种构建方式

1. 1x1卷积层:1x1卷积层是一种常用的瓶颈层构建方式。它可以通过减少特征图的通道数来降低参数量,同时保持特征图的空间维度不变。1x1卷积层在卷积神经网络中被广泛应用,例如在GoogLeNet和ResNet等网络结构中。4. 分组卷积:分组卷积将输入特征图分成多个组,并对每个组进行独立的卷积操作,然后将结果合并。2. 深度可分离卷积层:深度可分离卷积层由深度卷积和逐点卷积两个步骤组成。它可以在减少计算量的同时保持网络的表达能力。在CNN和Transformer模型研究中,有几种常见的构建瓶颈层的方式。

2024-02-28 18:50:24 282 1

原创 复现r2unet或rnn过程中报错RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

今天尝试用pytorch复现了r2unet分割模型,这个模型在UNet中加入了recurrent block,也就是循环网络模块。看上去像是cudnn版本问题,但是其实是循环网络模块需要的显存太大了。我把batch size从20调到10之后,再次报错。这次的报错就很明显了,说明了显存占用问题。我再次将batch size降到5.

2024-02-28 14:31:09 310 1

原创 息肉分割数据集kvasir-seg的处理

kvasir-seg数据集作为一个只有单一前景的分割任务,按理说其mask只能是二值化的,但是现在却有不止两种值。其黑色区域的值可能是0, 1, 2, 3, 4, 5, 6, 7,8;白色区域可能是48, 249, 250, 251, 252, 253, 254, 255等。虽然做息肉分割除了kvasir-seg也没有太多好的选择,但这个数据集的问题挺多的,不能直接使用。相比其他领域的数据集,这个数据集真的很粗糙。其次,维度问题,要注意,最后输入训练的mask的channel必须是1.

2024-02-26 16:52:15 560 3

原创 在pytorch实现机器学习代码时,self.children()的作用

如果我们把最后一句输出代码改成print(child),则会输出所有层的结构。3)在模型的训练过程中,你可能想要对不同的子层应用不同的正则化或优化策略。2)在模型的初始化阶段,你可能需要为特定的子层设置特定的参数初始化策略。1)在模型的前向传播中,你可能想要以某种方式迭代处理所有的子层。的实例)中所有子模块的迭代器。这些子模块可以是层(如。等),也可以是包含其他子模块的容器(如。是一个方法,它返回模型(通常是一个。当你定义一个复杂的神经网络模型时,

2024-02-26 16:37:33 334 1

原创 确认可跑的resnet18代码(pytorch)

注意:由于我这个代码是在cifar10上测试的,cifar10的图片尺寸只有16x16像素,非常小。因此,我注释掉了out = self.maxpool(out)这一行。网上对resnet18的实现很多,代码的布局和细微处都有差别,很多初学者看得眼花缭乱,而且浪费大量时间后代码可能还跑不起来。我下面这个代码原本也是从网上东拼西凑的,但是跑起来发现有很多错误。这是在cifar10上跑50轮时的结果,优化器是adam,lr=0.001.如果在较大尺寸的图片上使用这段代码,最好把这行代码加回来,效果更好。

2024-02-21 00:37:39 312 1

pytorch计算数据集mean和std

pytorch计算数据集mean和std

2024-02-22

pytorch手写数字识别代码

pytorch手写数字识别的案例代码

2023-11-24

pytorch实现回归模型案例代码

pytorch实现回归模型案例代码

2023-11-23

装饰器不同情形示例代码

这是我文章里介绍装饰器不同情形时用的一些示例代码,最好结合文章理解。https://blog.csdn.net/wwimhere/article/details/134432854?spm=1001.2014.3001.5502

2023-11-19

用python修改文件夹内图片类型

用python修改文件夹内所有图片类型

2023-11-15

多目标学习multi-instance learning源码

多目标学习multi-instance learning源码,scikit和numpy实现

2023-11-13

预训练模型swin-large-patch4-window12-384-22kto1k.pth

swin transformer 预训练模型swin_large_patch4_window12_384_22kto1k.pth

2023-11-12

预训练swin-large-patch4-window7-224-22kto1k.pth

swin Transformer 预训练模型参数 swin_large_patch4_window7_224_22kto1k.pth

2023-11-12

swin transformer预训练模型swin-small-patch4-window7-224-22kto1k-finet

swin transformer预训练参数模型swin_small_patch4_window7_224_22kto1k_finetune.pth

2023-11-12

《梯度增强决策树影响估计方法的适应与评价》论文及实验代码

梯度增强决策树影响估计方法的适应与评价论文及实验代码

2023-11-10

java实现alexnet

java实现经典卷积模型alexnet

2023-11-08

java实现VGG16

用java实现卷积神经网络模型vgg16的示例

2023-11-08

大数据贝叶斯回归的空间多元树模型论文以及代码实现

大数据贝叶斯回归的空间多元树模型论文以及代码实现

2023-11-08

stable-diffusion默认vae

stable-diffusion默认vae

2023-11-07

kvasir-sessile内窥镜图像分割数据集

kvasir-sessile内窥镜图像分割数据集,包含mask

2023-11-06

Berrey.vae.pt(stable diffusion使用,用于替换默认VAE)

Berrey.vae.pt,用于替换stable diffusion默认的VAE。 VAE叫做变分自编码器(Variational Autoencoder,VAE)。 在Stable Diffusion中,VAE的作用是在生成图像的过程中引入潜在变量,从而使得生成的图像更具多样性和可控性。 有些lora或者checkpoint生成的图片比较模糊、缺少细节或者色彩暗淡时,应该考虑是否是因为默认的VAE效果不好。这时候可是尝试替换本VAE

2023-11-06

精神疾病的基础知识思维导图

精神疾病的分类与基础知识思维导图,非常齐全

2023-11-06

convnext-base-22k-1k-224.pth

ConvNext的预训练模型参数:convnext_base_22k_1k_224.pth

2023-11-06

S3C2410中断源名称

嵌入式开发S3C2410中断源名称的详细整理

2012-12-02

嵌入式ARM系统启动引导程序

关于嵌入式开发ARM系统的启动引导程序代码

2012-12-02

空空如也

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

TA关注的人

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