【计算机视觉 | CNN】Image Model Blocks的常见算法介绍合集(三)

一、Inception-ResNet-v2-C

Inception-ResNet-v2-C 是 Inception-ResNet-v2 架构中使用的 8 x 8 网格的图像模型块。 它很大程度上遵循 Inception 模块和分组卷积的思想,但也包括残差连接。

在这里插入图片描述

二、Inception-ResNet-v2-B

Inception-ResNet-v2-B 是 Inception-ResNet-v2 架构中使用的 17 x 17 网格的图像模型块。 它很大程度上遵循 Inception 模块和分组卷积的思想,但也包括残差连接。

在这里插入图片描述

三、Inception-ResNet-v2-A

Inception-ResNet-v2-A 是 Inception-ResNet-v2 架构中使用的 35 x 35 网格的图像模型块。

在这里插入图片描述

四、Inception-ResNet-v2 Reduction-B

Inception-ResNet-v2 Reduction-B 是 Inception-ResNet-v2 架构中使用的图像模型块。

在这里插入图片描述

五、Convolutional Block Attention Module

卷积块注意力模块(CBAM)是卷积神经网络的注意力模块。 给定中间特征图,该模块沿着两个独立的维度(通道和空间)顺序推断注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。

在这里插入图片描述
在这里插入图片描述

六、Efficient Channel Attention

高效通道注意力是一种基于挤压和激励块的架构单元,可以在不降低维度的情况下降低模型复杂性。 它被提议作为 ECA-Net CNN 架构的一部分。

在没有降维的情况下进行通道级全局平均池化之后,ECA 通过考虑每个通道及其通道来捕获局部跨通道交互k邻居。 ECA可以通过快速有效地实施1D尺寸卷积k,其中内核大小k表示局部跨通道交互的覆盖范围,即有多少邻居参与一个通道的注意力预测。

在这里插入图片描述

七、ShuffleNet V2 Downsampling Block

ShuffleNet V2 Downsampling Block 是 ShuffleNet V2 架构中使用的空间下采样块。 与常规 ShuffleNet V2 块不同,通道分割运算符被删除,因此输出通道的数量加倍。

在这里插入图片描述

八、FBNet Block

FBNet Block 是通过 DNAS 神经架构搜索发现的 FBNet 架构中使用的图像模型块。 使用的基本构建块是深度卷积和残差连接。

在这里插入图片描述

九、Neural Attention Fields

NEAT,即神经注意力域,是端到端模仿学习模型的特征表示。 NEAT 是一个连续函数,它将鸟瞰 (BEV) 场景坐标中的位置映射到路点和语义,使用中间注意力图迭代地将高维 2D 图像特征压缩为紧凑的表示。 这使得模型能够选择性地关注输入中的相关区域,同时忽略与驾驶任务无关的信息,从而有效地将图像与 BEV 表示相关联。 此外,使用 NEAT 中间表示可视化模型的注意力图可以提高可解释性。

在这里插入图片描述

十、Inception-A

Inception-A 是 Inception-v4 架构中使用的图像模型块。

在这里插入图片描述

十一、Inception-B

Inception-B 是 Inception-v4 架构中使用的图像模型块。

在这里插入图片描述

十二、Inception-C

Inception-C 是 Inception-v4 架构中使用的图像模型块。

在这里插入图片描述

十三、Reduction-B

Reduction-B 是 Inception-v4 架构中使用的图像模型块。

在这里插入图片描述

十四、Global Context Block

全局上下文块是用于全局上下文建模的图像模型块。 目的是兼具具有远程依赖性有效建模的简化非局部块和具有轻量级计算的挤压激励块的优点。

在这里插入图片描述
在这里插入图片描述

十五、One-Shot Aggregation

One-Shot Aggregation 是一种图像模型块,通过聚合中间特征来替代密集块。 它被提议作为 VoVNet 架构的一部分。 每个卷积层之间采用双向连接。 一种方式连接到后续层以产生具有较大感受野的特征,而另一种方式仅聚合一次到最终输出特征图中。 与 DenseNet 的区别在于,每层的输出不会路由到所有后续的中间层,这使得中间层的输入大小恒定。

在这里插入图片描述

十六、Pyramidal Residual Unit

金字塔残差单元是一种残差单元,其中通道数随着层出现的深度而逐渐增加,类似于形状从顶部向下逐渐变宽的金字塔结构。 它是作为 PyramidNet 架构的一部分引入的。

在这里插入图片描述

十七、Pyramidal Bottleneck Residual Unit

金字塔瓶颈残差单元是一种残差单元,其中通道数随着层出现的深度而逐渐增加,类似于形状从上向下逐渐变宽的金字塔结构。 它还包含使用 1x1 卷积的瓶颈。 它是作为 PyramidNet 架构的一部分引入的。

在这里插入图片描述

十八、Fractal Block

在这里插入图片描述
在这里插入图片描述

十九、Transformer in Transformer

Transformer 是一种最初应用于 NLP 任务的基于自注意力的神经网络。 最近,提出了纯基于变压器的模型来解决计算机视觉问题。 这些视觉转换器通常将图像视为一系列补丁,而忽略每个补丁内部的内在结构信息。 在本文中,我们提出了一种新颖的 Transformer-iN-Transformer (TNT) 模型,用于对块级和像素级表示进行建模。 在每个 TNT 块中,外部变压器块用于处理补丁嵌入,内部变压器块从像素嵌入中提取局部特征。 像素级特征通过线性变换层投影到补丁嵌入的空间,然后添加到补丁中。 通过堆叠 TNT 块,我们构建了用于图像识别的 TNT 模型。

在这里插入图片描述

二十、Dilated Bottleneck Block

Dilated Bottleneck Block 是 DetNet 卷积神经网络架构中使用的图像模型块。 它采用带有扩张卷积的瓶颈结构来有效地扩大感受野。

在这里插入图片描述

### VQ-VAE与PixelCNN的协同工作原理 VQ-VAE(Vector Quantized Variational Autoencoder)是一种特殊的自动编码器结构,其核心特点是引入了一个离散化的潜在表示空间。这种模型能够将连续输入转换为一组离散向量,并通过这些离散向量重建原始数据[^1]。 #### PixelCNN的作用机制 PixelCNN作为一种自回归生成模型,擅长于捕捉图像中像素间的依赖关系并预测下一个像素值的概率分布。当与VQ-VAE结合时,PixelCNN被用来建模由VQ-VAE产生的离散潜变量之间的条件概率分布。具体来说: - **训练阶段**:使用已经训练好的VQ-VAE获得的数据集对应的离散编码作为监督信号来指导PixelCNN的学习过程。此时,PixelCNN的任务是从给定的部分序列推断后续部分的可能性。 - **生成阶段**:一旦PixelCNN完成训练,便可以独立地生成新的离散编码序列。随后,借助VQ-VAE中的解码器组件,可以从新创建的离散编码恢复出完整的高维样本——即合成的新图像[^2]。 ```python import torch.nn as nn class PixelCNN(nn.Module): def __init__(self, input_dim=64, hidden_dims=[128], kernel_size=7, num_embeddings=512): super(PixelCNN, self).__init__() layers = [] padding = (kernel_size - 1) // 2 # Initial layer with masked convolution to ensure causality initial_layer = MaskedConv2d('A', input_dim, hidden_dims[0], kernel_size, stride=1, padding=padding) layers.append(initial_layer) # Stack of residual blocks using gated convolutions for i in range(len(hidden_dims)): current_hidden_dim = hidden_dims[i] block_layers = [ GatedMaskedConv2d('B', current_hidden_dim, current_hidden_dim * 2, kernel_size, stride=1, padding=(kernel_size - 1)//2), nn.ReLU(), DownShift(current_hidden_dim), RightShift(current_hidden_dim)] layers.extend(block_layers) final_convolution = nn.Conv2d(in_channels=current_hidden_dim, out_channels=num_embeddings, kernel_size=1, stride=1, padding=0) layers.append(final_convolution) self.network = nn.Sequential(*layers) def forward(self, x): return self.network(x) def sample_from_pixel_cnn(pixel_cnn_model, shape, temperature=1.0): """Sample a new image from the trained PixelCNN model.""" img = torch.zeros(shape).to(device=device) for row in range(img.shape[-2]): for col in range(img.shape[-1]): logits = pixel_cnn_model(img.unsqueeze(0)) probs = F.softmax(logits[:, :, row, col].div_(temperature), dim=-1) sampled_value = torch.multinomial(probs.squeeze(), 1)[None,...] img[...,row,col] = sampled_value return img # Example usage: model = PixelCNN() sampled_image = sample_from_pixel_cnn(model, (batch_size, channels, height, width)) ``` 此代码片段展示了如何构建一个简单的PixelCNN网络以及基于该网络进行采样的函数。注意这里仅提供了一个简化版本用于说明目的,在实际应用中可能还需要考虑更多细节优化性能和效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值