ResNet网络卷积视觉网络 和 Vit (Vision Transformer)两种网络对比, 在特征提取上的不同

从信息提取的角度思考,图片为什么要输入——>网络模型(卷积神经网络(ResNet系列)对比 ViT (Vision Transformer))

1. 卷积核的工作原理:

特征提取:卷积核通过在输入图像(或特征图)上滑动来提取特征。每个卷积核负责从输入数据中提取一种特定类型的特征,例如边缘、颜色变化、纹理等。

权重和偏置:每个卷积核都有一组权重和一个偏置项,这些参数在训练过程中通过反向传播算法进行学习和更新。卷积操作本质上是对卷积核权重和输入图像片段(卷积核覆盖的区域)的元素进行 加权求和,然后 加上偏置项。

激活函数:卷积操作的输出通常会通过一个非线性激活函数(如ReLU)进行处理,以引入非线性特性,这对于学习复杂的特征和模式是必要的。

多个卷积核:CNN层通常包含多个不同的卷积核,每个卷积核都可以捕捉输入数据的不同特征。这些不同的卷积核在相同的输入数据上进行操作,但由于它们的权重不同,因此可以提取不同的信息。
请添加图片描述

2. ViT 线性映射

ViT的架构主要基于Transformer模型,这是一种主要依靠自注意力机制(self

### 使用 Vision Transformer (ViT) 提取图像征 为了使用 Vision Transformer (ViT) 从图片中提取征,可以采用预训练的 ViT 模型并调整其结构以便于获取中间层的输出。具体实现方法如下: #### 加载预训练模型 首先需要加载一个已经经过充分训练的 ViT 模型。这可以通过调用深度学习框架(如 PyTorch 或 TensorFlow)中的相应库函数完成。 对于 PyTorch 用户来说,可以从 Hugging Face 的 `transformers` 库导入 ViT 模型: ```python from transformers import ViTFeatureExtractor, ViTModel feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-224') model = ViTModel.from_pretrained('google/vit-base-patch16-224') ``` #### 准备输入数据 接着要准备待处理的图像文件作为输入给 ViT 模型。这里同样借助上述提到的功能提取器来进行必要的预处理操作。 ```python import requests from PIL import Image url = "http://images.cocodataset.org/val2017/000000039769.jpg" image = Image.open(requests.get(url, stream=True).raw) inputs = feature_extractor(images=image, return_tensors="pt") ``` #### 获取征向量 最后一步就是让 ViT 模型接收这些经过预处理后的张量形式的数据,并返回对应的隐藏状态表示即所需征向量。 ```python outputs = model(**inputs) last_hidden_states = outputs.last_hidden_state print(last_hidden_states.shape) # 输出形状应类似于 torch.Size([batch_size, sequence_length, hidden_dim]) ``` 通过这种方式可以获得每一张输入图片对应的一系列高维征向量[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值