![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
神经网络
文章平均质量分 68
在这个专栏中,主要想对已学习的注意力机制进行总结。
Make_magic
不要轻易放弃,因为开始不容易。
展开
-
AlexNet网络中的5个卷积层的特征图可视化
【代码】AlexNet网络中的5个卷积层的特征图可视化。原创 2024-05-10 13:06:49 · 191 阅读 · 0 评论 -
CAM论文翻译
在这项工作中,我们重新审视了文献[13]中提出的全局平均池化层,并阐明了它如何明确地使卷积神经网络具有出色的定位能力,尽管该网络是在图像级标签上进行训练的。虽然此技术先前被提出作为一种规范化训练的手段,但我们发现它实际上构建了一种通用的可定位深层表示,可应用于各种任务。尽管全局平均池化看似简单,我们在ILSVRC 2014的对象定位任务上实现了37.1%的前5错误率,这与完全监督的CNN方法所达到的34.2%的前5错误率非常接近。原创 2023-12-13 12:55:55 · 311 阅读 · 0 评论 -
在使用图像分类模型时,把模型由vgg16换成resnet50,使用LayerCAM热力图进行可解释性分析,热力图会出现“棋盘网格”现象,请问是什么原因?有哪些改进的方法?
这些跳跃连接会导致特征图(feature maps)尺寸的减小和放大,而在生成热力图时,这种尺寸变化可能会引起“棋盘网格”效应,即在热力图中出现棋盘般的方块结构,这些方块的边缘往往呈现高强度。:除了LayerCAM外,还可以尝试其他基于梯度的方法(如Grad-CAM、Guided Grad-CAM等)或者基于注意力机制的方法(如Attention Maps),这些方法可能对ResNet等网络结构更友好,不容易出现“棋盘网格”现象。这种不对齐可能导致在热力图中出现格状结构。这有助于减轻“棋盘网格”效应。原创 2023-11-30 19:49:45 · 347 阅读 · 0 评论 -
如何科学地划分医学图像数据集
在进行医学图像分类任务时,如何科学地划分数据集是一个重要的问题。这个问题的答案取决于你的数据特性和实验目标。一般来说,有两种常见的数据划分方法:按照比例划分和按照病例划分。原创 2023-11-27 17:37:23 · 503 阅读 · 0 评论 -
mmsegmentation学习笔记
方法二: train.py–>Configuration–>Parameters: E:/Python_Project/mmsegmentation_ours/configs/my_deeplabv3plus/deeplabv3plus_r50-d8_4xb4-40k_pascal-context-59-480x480.py --work-dir mmseg_log -->apply–>run train.py。原创 2023-11-25 21:49:47 · 427 阅读 · 0 评论 -
Labelme加载AI(Segment-Anything)模型进行图像标注
labelme是使用python写的基于QT的跨平台图像标注工具,可用来标注分类、检测、分割、关键点等常见的视觉任务,支持VOC格式和COCO等的导出,代码简单易读,是非常利用上手的良心工具。(2)在labelme/labelme/文件夹下自建一个文件夹model_file。(3)依次输入以下几个网址下载onnx到model_file文件目录。(1)打开labelme/labelme/ai/(4)修改labelme/labelme/ai/找到源码所在路径进行修改。原创 2023-11-25 16:49:01 · 2967 阅读 · 4 评论 -
图像分类单张图片预测准确率达到百分之百
然而,即使单个图片能够达到100%的准确率,这并不能保证在整个测试集上也能获得相同的结果。在图像分类任务中,针对单个图片得到100%的准确率是有可能但极其罕见的,并且不代表模型在整个测试集上也能达到100%的准确率。原创 2023-11-22 22:02:13 · 647 阅读 · 2 评论 -
ONNX runtime本地终端部署
【代码】ONNX runtime本地终端部署。原创 2023-10-19 16:51:04 · 284 阅读 · 0 评论 -
保存PyTorch模型为ONNX
使用了torch.save(model.state_dict(), model_path)保存模型权重而不是整个模型,那么在将模型保存为ONNX时,需要首先创建一个具有相同结构的模型,并加载权重。然后,可以将这个模型导出为ONNX格式。原创 2023-10-10 15:21:54 · 287 阅读 · 0 评论 -
图像分类数据集划分(创建ImageNet格式的数据集)
【代码】图像分类数据集划分(创建ImageNet格式的数据集)原创 2023-10-08 16:12:00 · 1394 阅读 · 0 评论 -
计算机视觉中的可解释性分析
计算机视觉中的可解释性分析是指通过不同的方法和技术来解释和理解深度学习模型对图像或视频数据的预测和决策过程。这是一个非常重要的领域,因为深度学习模型通常被认为是“黑盒子”,很难理解其内部工作原理。可解释性分析的目标是提供对模型决策的更好理解,以便用户和开发人员可以信任和改进这些模型。原创 2023-10-05 16:40:08 · 801 阅读 · 0 评论 -
mmpretrain学习笔记
(4)数据集路径 data_root=‘data/imagenet’–》data_root=‘data/Fruits Dataset/images’(7)适当的修改num_workers、epochs、batch_size、lr等。3、训练优化 :梯度下降算法、学习率参数、训练总轮次、学习率变化策略等。my_resnet18_8xb32_in1k.py 完整的配置文件。(6)split=‘train’、split='val’注释掉。2、数据:数据集划分、数据文件路径、批大小、数据增强策略等。原创 2023-09-29 22:01:56 · 534 阅读 · 0 评论 -
ONNX Runtime部署ImageNet预训练图像分类模型(同济子豪兄学习笔记)
使用 ONNX Runtime 推理引擎,载入 ImageNet 预训练图像分类 onnx 模型,预测摄像头实时画面。只需把onnx模型文件发到部署硬件上,并安装 ONNX Runtime 环境,用下面几行代码就可以运行模型了。同济子豪兄:https://space.bilibili.com/1900783。同济子豪兄:https://space.bilibili.com/1900783。本代码需在连接摄像头的本地运行,不能在云GPU平台运行。本代码需在连接摄像头的本地运行,不能在云GPU平台运行。原创 2023-09-13 16:06:35 · 493 阅读 · 0 评论 -
Pytorch图像分类模型转ONNX(同济子豪兄学习笔记)
模型部署入门教程(三):PyTorch 转 ONNX 详解 https://zhuanlan.zhihu.com/p/498425043。模型部署入门教程(一):模型部署简介 https://zhuanlan.zhihu.com/p/477743341。ONNX Github主页: https://github.com/onnx/onnx。ONNX算子:https://onnx.ai/onnx/operators。ONNX主页: https://onnx.ai。原创 2023-09-13 08:52:54 · 267 阅读 · 0 评论 -
通道混洗模块(Channel Shuffle Module)
通道混洗模块的主要作用在于增强特征的跨通道交流。在传统的卷积层中,不同通道之间的信息很少进行交流,通道混洗模块通过打破这种限制,可以提取更加丰富和有用的特征表示,从而有助于提高网络的性能。此外,通道混洗模块还可以一定程度上减少模型的计算复杂性,因为它可以在一定程度上减少通道之间的相关性,从而减少参数量。通道混洗模块的核心思想是将输入的特征图分成多个通道组,并将这些通道组重新组合以促进不同通道之间的信息交换。请注意,这只是一个简单的示例,实际的通道混洗模块可能会在更复杂的网络架构中使用。原创 2023-08-28 22:53:43 · 1117 阅读 · 0 评论 -
SENet(Squeeze-and-Excitation Network)注意力机制
SENet(Squeeze-and-Excitation Network)是一种用于深度卷积神经网络(CNN)的注意力机制,旨在增强网络在特征通道上的表示能力。它通过学习每个通道的重要性权重,然后使用这些权重来重新加权特征图,从而增强有用信息的表示,抑制不相关信息。的模块,用于在给定的输入特征图上应用SENet注意力机制。在这个阶段,通过一个两层的全连接网络来学习通道的重要性权重。的张量输入到一个全连接层,将通道数压缩到一个较小的值,称为。逐元素相乘,从而获得每个通道上的加权特征图。的张量,与原始特征图。原创 2023-08-23 22:48:34 · 1372 阅读 · 0 评论 -
倒残差结构
而在倒残差结构中,我们首先对输入特征图进行一个轻量级的扩张卷积(expand convolution),然后再进行一个深度可分离卷积(depthwise separable convolution),最后再通过一个点卷积(pointwise convolution)将通道数降回来,最终与原始输入特征图相加得到输出。而点卷积则用来将通道数降回来,同时引入非线性变换。这种设计的意义在于,倒残差结构通过在通道扩张后再进行深度可分离卷积,将计算成本降低到了较低的程度,从而在轻量级网络中实现了高效的特征提取。原创 2023-08-21 22:57:12 · 2760 阅读 · 0 评论 -
MobileNet、MobileNetV2和MobileNetV3创新点总结
当谈论MobileNet、MobileNetV2和MobileNetV3时,我们指的是一系列基于深度学习的轻量级神经网络架构,这些架构旨在在保持高度准确性的同时减少模型的计算和参数量。原创 2023-08-21 21:19:42 · 997 阅读 · 0 评论 -
深度可分离卷积(Depthwise Separable Convolution)
深度可分离卷积(Depthwise Separable Convolution)是一种卷积神经网络中常用的卷积操作,它在减少计算量的同时保持了较好的特征提取能力,因此被广泛用于轻量化的模型设计中。标准卷积使用一个卷积核对输入数据进行卷积,而深度可分离卷积将卷积操作分解为深度卷积和逐点卷积,从而显著减少了参数量。深度卷积只使用一个卷积核对输入通道逐通道进行卷积,逐点卷积使用1x1的卷积核进行通道之间的混合。深度卷积是在输入的每个通道上分别应用卷积核,生成相同数量的通道,然后将这些通道按通道维度进行堆叠。原创 2023-08-17 22:03:35 · 1934 阅读 · 0 评论 -
特征图拼接、相加和相乘
特征图拼接、相加和相乘是在神经网络中进行特征融合的不同方式,它们各自有不同的优缺点,适用于不同的场景。假设我们有两个特征图A和B,它们的尺寸为[H, W, C1]和[H, W, C2],其中C1和C2分别是通道数。特征图拼接的优点是能够保留两个特征图的所有信息,适用于需要同时考虑不同特征的任务。特征图拼接是将多个特征图在通道维度上进行堆叠,以增加特征图的深度。特征图相加是将多个特征图逐元素相加,以融合它们的信息。特征图相乘的优点是可以增强共同出现的特征并减弱不重要的特征,适用于需要突出共同特征的任务。原创 2023-08-14 21:25:47 · 5485 阅读 · 0 评论 -
ResNet创新点总结
这种残差连接允许信息直接跳过一些层,从而在反向传播中有效地传递梯度,减轻了梯度消失和梯度爆炸问题,使得可以训练更深的网络。ResNet(Residual Networks)是深度学习中的一个重要架构,其创新点主要体现在解决了深层神经网络训练中的梯度消失和梯度爆炸问题,从而使得可以构建更深的神经网络。综上所述,ResNet 的创新点主要在于引入了残差连接,通过解决梯度问题使得可以构建更深的神经网络,从而在计算机视觉任务中取得了重大突破。以下是一个简化版的残差连接的代码示例,用于构建一个包含残差块的神经网络。原创 2023-08-13 22:13:04 · 1045 阅读 · 0 评论 -
GoogLeNet创新点总结
Inception模块内部通过多个并行的卷积层和池化层来处理输入数据,然后将它们的输出进行拼接,从而增加了网络对不同尺度特征的感知能力。GoogLeNet使用了全局平均池化来替代全连接层,通过对特征图的所有通道进行平均池化,生成一个特征向量,然后使用一个softmax分类器进行分类。总之,GoogLeNet通过引入Inception模块、1x1卷积、全局平均池化以及辅助分类器等创新点,成功地构建了一个更深、更宽的网络,具备强大的特征提取和分类能力,并在当时的图像分类竞赛中取得了显著的成绩。原创 2023-08-07 22:53:09 · 510 阅读 · 0 评论 -
获得模型中某一层特征图的尺寸大小
在神经网络中,如果想获取模型中不同层的特征图尺寸(例如out1、out2、out3和out4),可以在模型的forward方法中逐层计算,并保存感兴趣层的输出。原创 2023-07-22 17:11:19 · 203 阅读 · 0 评论 -
Softmax函数
函数是一种常用的激活函数,通常用于多类别分类问题中。它的原理是将一个向量的元素转化为概率分布,使得每个元素的取值范围在0到1之间,并且所有元素的和为1。在这个例子中定义了一个包含Softmax函数的简单的全连接神经网络模型。函数的作用是将原始的线性得分转换为概率分布,使得模型能够对不同类别进行概率预测。函数常用于神经网络输出层,将模型输出转化为对各个类别的概率预测,从而进行多类别分类。输出结果为模型对不同类别的概率预测。表示输入向量中第i个元素的原始得分(线性输出);表示输入向量的维度,即类别的数量;原创 2023-07-18 23:02:32 · 2125 阅读 · 0 评论 -
ReLU激活函数
ReLU(Rectified Linear Unit)激活函数是一种常用的非线性激活函数,其原理是在输入小于等于零时输出为零,在输入大于零时输出等于输入值。ReLU激活函数的作用是引入非线性变换,使得神经网络可以学习更复杂的模式和特征。它的主要优点是计算简单、不存在梯度消失问题,并且能够加速收敛和提高模型的泛化能力。在深度学习中,ReLU激活函数通常被应用于神经网络的隐藏层,作为非线性激活函数使用。在这个例子中定义了一个包含ReLU激活函数的简单的全连接神经网络模型。表示ReLU激活函数的输出;原创 2023-07-18 22:49:24 · 3906 阅读 · 0 评论 -
局部响应归一化LRN(Local Response Normalization)
LRN主要用于激活函数后的归一化过程,它对局部神经元响应进行归一化,使得响应较大的神经元抑制响应较小的神经元,从而增强模型的泛化性能。LRN的使用地方主要是在深度学习的卷积神经网络中,特别是一些经典的网络结构中,如AlexNet和GoogLeNet等。在这些网络中,LRN被用于增强网络的泛化性能和对变化的适应性。LRN的作用是增强模型的鲁棒性和泛化能力,它可以在一定程度上抑制较大的激活值,增强模型对光照、对比度等变化的适应性。是可调节的超参数,用于控制归一化的程度。表示特征图的通道数,原创 2023-07-18 22:41:43 · 1726 阅读 · 0 评论 -
神经网络:前向传播和后向传播
数学角度的解释需要使用链式法则和梯度计算,涉及到矩阵乘法、偏导数等运算,具体的推导和数学公式较为复杂,超出了当前文本输入框的限制。如果你对具体的数学推导和公式感兴趣,建议参考深度学习相关的教材或论文,其中会详细介绍前向传播和后向传播的数学推导过程。需要注意的是,具体的公式推导和计算过程涉及矩阵乘法、元素-wise的操作和求导等数学运算,不同的网络结构和损失函数可能会有所差异。在神经网络中,假设我们有一个输入向量 x,一个输出向量 y,以及一系列的参数矩阵 W 和偏置向量 b。和链式法则,逐层向后计算梯度。原创 2023-06-22 10:19:25 · 4671 阅读 · 0 评论 -
神经网络:参数更新
在计算机视觉中,参数更新是指通过使用梯度信息来调整神经网络模型中的参数,从而逐步优化模型的性能。通过PyTorch框架,可以很方便地实现参数更新。以下是一个示例代码,演示了如何使用随机梯度下降(SGD)优化器进行参数。在上述代码中,通过定义模型、损失函数和优化器,并使用。这样就实现了模型参数的更新过程。表示损失函数关于参数的梯度。表示第t次迭代的参数,方法计算梯度,然后使用。原创 2023-06-22 10:07:37 · 2605 阅读 · 0 评论 -
神经网络:梯度计算
通过计算损失函数对网络参数的梯度,可以使用梯度下降等优化算法来更新参数,使得网络能够逐步调整权重和偏置,以最小化损失函数并提高模型性能。数学角度上,梯度计算是通过对函数的偏导数进行求解,利用导数表示函数在各个方向上的变化率。通过计算损失函数关于模型参数的梯度,可以确定参数更新的方向和幅度,从而优化模型的参数。解析梯度适用于具有可导性质的函数和模型,能够提供精确的梯度信息,进而优化模型的参数。通过链式法则,可以将整个模型分解为一系列函数的组合,然后计算每个函数对输入的偏导数,最终得到模型参数的梯度。原创 2023-06-22 10:00:35 · 2661 阅读 · 0 评论 -
神经网络:损失函数
总之,损失函数在计算机视觉中起着至关重要的作用,它衡量了模型的性能并提供了优化目标,帮助模型学习从输入数据中提取有用的特征,使得模型能够更好地进行预测和分类任务。在计算机视觉中,损失函数(Loss Function)用于衡量预测结果与真实标签之间的差异,是神经网络训练中的重要组成部分。以上是常见的损失函数及其数学表达式、优缺点和适用场景。在实际应用中,可以根据具体问题和任务的特点选择合适的损失函数。原创 2023-06-22 09:41:15 · 4907 阅读 · 0 评论 -
神经网络:初始化
具体的选择和调整应基于模型的架构和激活函数的选择,以及任务的特点和数据的分布等因素。这样的初始化方法可以使参数在合理的范围内进行初始化,有助于避免梯度消失和梯度爆炸,并提供良好的起点来优化模型。它的作用是为模型提供一个良好的起点,以便更快地收敛到较好的解,并避免梯度消失或梯度爆炸等问题。通过合理地初始化参数,可以为模型提供一定的学习能力和表达能力,使其能够更好地适应训练数据和提取有效的特征。合适的初始化可以使模型具有足够的多样性,避免陷入局部最优解,并提高模型的泛化能力。模块,其中的函数根据需要进行选择。原创 2023-06-22 00:24:14 · 1944 阅读 · 0 评论 -
神经网络:全连接层
然而,全连接层的参数量较大,容易产生过拟合的问题,因此在实际应用中,常常会与其他层结合使用,如卷积层、池化层和激活函数等,以构建更有效的深度神经网络结构。全连接层的作用是引入非线性变换和特征交互,从而增加模型的表达能力和学习能力。在实际应用中,全连接层通常会与其他层结合使用,如卷积层、池化层和激活函数等,以构建更复杂的深度神经网络结构,从而提高模型的性能和泛化能力。在计算机视觉中,全连接层(也称为密集连接层或线性层)是一种常用的神经网络层,用于将输入数据与模型的参数进行线性组合,并产生输出结果。原创 2023-06-22 00:03:31 · 2811 阅读 · 0 评论 -
神经网络:正则化
通过在损失函数中添加正则化项,可以限制模型参数的取值范围,使其偏好较小的权重值,从而达到控制模型复杂度的目的。正则化在计算机视觉中的作用是控制模型的复杂度,减少过拟合,提高模型的泛化能力。w)为模型的预测输出,w为模型参数,λ为正则化系数,||w||2为L2范数。正则化通过在损失函数中添加额外的正则化项,惩罚参数较大的取值,减少模型对训练数据中噪声和异常样本的过拟合现象,提高模型的鲁棒性。正则化可以限制模型参数的取值范围,减少模型的复杂度,从而简化模型的结构。常见的正则化项包括L1正则化和L2正则化。原创 2023-06-21 23:45:55 · 4952 阅读 · 1 评论 -
神经网路:批归一化
批归一化(Batch Normalization,BN)是一种常用的正则化技术,用于加速深度神经网络的训练过程和提高模型的收敛性。在训练过程中,每个批次的均值和方差会被用于标准化,而在推断过程中,使用累积的均值和方差进行标准化。BN层对输入数据的微小扰动具有一定的鲁棒性,可以提高模型对输入数据的适应能力和泛化能力。层归一化对每个样本的所有特征进行标准化,适用于逐样本的序列数据,如自然语言处理任务。将特征分成若干组,对每组内的特征进行标准化,通过学习得到每组的缩放因子和偏移量。原创 2023-06-21 23:24:11 · 769 阅读 · 0 评论 -
神经网络:池化操作
需要注意的是,上述公式中的池化核大小k和步幅可以根据具体的应用和网络架构进行选择和调整,以适应不同的任务和特征尺度的需求。y[i, j] = mean(x[i:i+k, j:j+k]), 其中 y[i, j] 表示输出特征图的元素,x[i:i+k, j:j+k] 表示输入特征图中的局部区域,k为池化核的大小。y[i, j] = max(x[i:i+k, j:j+k]), 其中 y[i, j] 表示输出特征图的元素,x[i:i+k, j:j+k] 表示输入特征图中的局部区域,k为池化核的大小。原创 2023-06-21 22:51:42 · 3749 阅读 · 0 评论 -
神经网络:激活函数
激活函数通过增加非线性变换,使得神经网络能够学习和表示更加复杂的函数关系,提高模型的拟合能力和表达能力。总之,激活函数在计算机视觉中的作用、原理和意义是通过引入非线性变换,增加网络的表达能力,激活神经元并解决线性不可分问题,使神经网络能够更好地适应和处理复杂的视觉任务。激活函数的引入扩展了网络的表达能力,使神经网络能够对输入数据进行非线性映射和特征提取,从而更好地捕捉和表示输入数据的复杂性。在计算机视觉中,激活函数是神经网络中的一种非线性函数,用于引入非线性变换和非线性特性到网络中。原创 2023-06-20 22:03:02 · 2010 阅读 · 0 评论 -
神经网络:卷积操作
CNN是计算机视觉中最常用的深度学习模型之一,它通过多个卷积层和其他类型的层来提取和学习图像中的特征,并在训练过程中优化网络参数以实现特定任务的准确性。卷积操作能够从图像中提取有用的特征。给定一个输入图像和一个称为卷积核(或滤波器)的小矩阵,卷积操作通过在图像上滑动卷积核,并将卷积核与图像的每个位置进行逐元素相乘,然后将结果相加,从而生成输出特征图。输入图片大小 I_in×I_in,卷积核大小 k×k,步长 s,padding的像素数 p,膨胀系数为d,输出图片大小为 I_out×I_out。原创 2023-06-19 22:26:43 · 4039 阅读 · 0 评论 -
卷积神经网络定义模型时候各个组件的作用
当我们训练卷积神经网络(Convolutional Neural Network,CNN)时,我们需要进行前向传播和反向传播来更新模型的参数。在这个过程中,使用了一系列的组件和操作来实现特定的功能。通过前向传播和反向传播的迭代,CNN模型可以逐渐学习到输入数据的特征表示,提高模型在任务上的性能。同时,适当的初始化和正则化方法也能够帮助模型更好地学习和泛化,提高模型的鲁棒性和泛化能力。反向传播是根据损失函数计算模型参数的梯度,并使用梯度下降法来更新参数。原创 2023-06-13 22:59:50 · 300 阅读 · 1 评论 -
注意力机制的介绍
具体来说,模型可以使用卷积神经网络(Convolutional Neural Network,CNN)从图片中提取特征,然后通过一个全连接神经网络(Fully Connected Network,FCN)来计算每个特征的注意力权重,从而给予不同的关注程度。在图像分类任务中,可以将空间注意力应用于卷积层的输出上,从而得到更准确的特征表示。在硬注意力中,模型不再给出一个连续的加权平均,而是在每个时间步显式地选择图片中的一个区域,这个区域可以是整张图片的一个局部区域,也可以是图片中的一个特定物体或区域。原创 2023-05-02 14:48:55 · 9342 阅读 · 2 评论