当前位置: 首页 > news >正文

建设网站设计公司茂名h5网站建设

建设网站设计公司,茂名h5网站建设,建设品牌网站公司,广东网站设计招工.一、说明 本篇是 变压器因其计算效率和可扩展性而成为NLP的首选模型。在计算机视觉中#xff0c;卷积神经网络#xff08;CNN#xff09;架构仍然占主导地位#xff0c;但一些研究人员已经尝试将CNN与自我注意相结合。作者尝试将标准变压器直接应用于图像#xff0c;发现在… 一、说明         本篇是 变压器因其计算效率和可扩展性而成为NLP的首选模型。在计算机视觉中卷积神经网络CNN架构仍然占主导地位但一些研究人员已经尝试将CNN与自我注意相结合。作者尝试将标准变压器直接应用于图像发现在中型数据集上训练时与类似ResNet的架构相比这些模型的准确性适中。然而当在更大的数据集上进行训练时视觉转换器ViT取得了出色的结果并在多个图像识别基准上接近或超过了最先进的技术。本文记录这种结论等有时机去验证。 二、CNN卷积网络transformer起源         这篇博文的灵感来自谷歌研究团队的一篇题为“图像价值16X16字大规模图像识别的变形金刚”的论文。本文建议使用直接应用于图像补丁的纯转换器来完成图像分类任务。视觉转换器 ViT 在多个基准测试中优于最先进的卷积网络同时在对大量数据进行预训练后需要更少的计算资源进行训练。         变压器因其计算效率和可扩展性而成为NLP的首选模型。在计算机视觉中卷积神经网络CNN架构仍然占主导地位但一些研究人员已经尝试将CNN与自我注意相结合。作者尝试将标准变压器直接应用于图像发现在中型数据集上训练时与类似ResNet的架构相比这些模型的准确性适中。然而当在更大的数据集上进行训练时视觉转换器ViT取得了出色的结果并在多个图像识别基准上接近或超过了最先进的技术。         图 1取自原始论文描述了一个模型该模型通过将 2D 图像转换为展平的 2D 补丁序列来处理 D 图像。然后将补丁映射到具有可训练线性投影的恒定潜在矢量大小。一个可学习的嵌入被附加到补丁序列之前它在转换器编码器输出端的状态用作图像表示。然后将图像表示通过分类头进行预训练或微调。添加位置嵌入以保留位置信息嵌入向量序列用作变压器编码器的输入该编码器由多头自注意和 MLP 块的交替层组成。         过去CNN长期以来一直是图像处理任务的首选。它们擅长通过卷积层捕获局部空间模式从而实现分层特征提取。CNN擅长从大量图像数据中学习并在图像分类对象检测和分割等任务中取得了显着的成功。         虽然CNN在各种计算机视觉任务中拥有良好的记录并且可以有效地处理大规模数据集但视觉转换器在全局依赖关系和上下文理解至关重要的情况下具有优势。然而视觉变压器通常需要大量的训练数据才能实现与CNN相当的性能。此外CNN由于其可并行化的性质而具有计算效率使其对于实时和资源受限的应用程序更加实用。 三、示例CNN 与视觉转换器         在本节中我们将使用 CNN 和视觉转换器方法在 Kaggle 中可用的猫和狗数据集上训练视觉分类器。首先我们将从 Kaggle 下载包含 25000 张 RGB 图像的猫和狗数据集。如果您还没有可以阅读此处的说明了解如何设置 Kaggle API 凭据。以下 Python 代码会将数据集下载到当前工作目录中。 from kaggle.api.kaggle_api_extended import KaggleApiapi KaggleApi() api.authenticate()# we write to the current directory with ./ api.dataset_download_files(karakaggle/kaggle-cat-vs-dog-dataset, path./)         下载文件后您可以使用以下命令解压缩文件。 !unzip -qq kaggle-cat-vs-dog-dataset.zip !rm -r kaggle-cat-vs-dog-dataset.zip         使用以下命令克隆视觉转换器 GitHub 存储库。此存储库包含vision_tr目录下的视觉转换器所需的所有代码。 !git clone https://github.com/RustamyF/vision-transformer.git !mv vision-transformer/vision_tr .         下载的数据需要清理并准备训练我们的图像分类器。创建以下实用程序函数以 Pytorch 的 DataLoader 格式清理和加载数据。 import torch.nn as nn import torch import torch.optim as optimfrom torchvision import datasets, models, transforms from torch.utils.data import DataLoader, Dataset from PIL import Image from sklearn.model_selection import train_test_splitimport osclass LoadData:def __init__(self):self.cat_path kagglecatsanddogs_3367a/PetImages/Catself.dog_path kagglecatsanddogs_3367a/PetImages/Dogdef delete_non_jpeg_files(self, directory):for filename in os.listdir(directory):if not filename.endswith(.jpg) and not filename.endswith(.jpeg):file_path os.path.join(directory, filename)try:if os.path.isfile(file_path) or os.path.islink(file_path):os.unlink(file_path)elif os.path.isdir(file_path):shutil.rmtree(file_path)print(deleted, file_path)except Exception as e:print(Failed to delete %s. Reason: %s % (file_path, e))def data(self):self.delete_non_jpeg_files(self.dog_path)self.delete_non_jpeg_files(self.cat_path)dog_list os.listdir(self.dog_path)dog_list [(os.path.join(self.dog_path, i), 1) for i in dog_list]cat_list os.listdir(self.cat_path)cat_list [(os.path.join(self.cat_path, i), 0) for i in cat_list]total_list cat_list dog_listtrain_list, test_list train_test_split(total_list, test_size0.2)train_list, val_list train_test_split(train_list, test_size0.2)print(train list, len(train_list))print(test list, len(test_list))print(val list, len(val_list))return train_list, test_list, val_list# data Augumentation transform transforms.Compose([transforms.Resize((224, 224)),transforms.RandomResizedCrop(224),transforms.RandomHorizontalFlip(),transforms.ToTensor(), ])class dataset(torch.utils.data.Dataset):def __init__(self, file_list, transformNone):self.file_list file_listself.transform transform# dataset lengthdef __len__(self):self.filelength len(self.file_list)return self.filelength# load an one of imagesdef __getitem__(self, idx):img_path, label self.file_list[idx]img Image.open(img_path).convert(RGB)img_transformed self.transform(img)return img_transformed, label 四、CNN方法         此图像分类器的 CNN 模型由三层 2D 卷积组成内核大小为 3步幅为 2最大池化层为 2。在卷积层之后有两个全连接层每个层由 10 个节点组成。下面是说明此结构的代码片段 class Cnn(nn.Module):def __init__(self):super(Cnn, self).__init__()self.layer1 nn.Sequential(nn.Conv2d(3, 16, kernel_size3, padding0, stride2),nn.BatchNorm2d(16),nn.ReLU(),nn.MaxPool2d(2))self.layer2 nn.Sequential(nn.Conv2d(16, 32, kernel_size3, padding0, stride2),nn.BatchNorm2d(32),nn.ReLU(),nn.MaxPool2d(2))self.layer3 nn.Sequential(nn.Conv2d(32, 64, kernel_size3, padding0, stride2),nn.BatchNorm2d(64),nn.ReLU(),nn.MaxPool2d(2))self.fc1 nn.Linear(3 * 3 * 64, 10)self.dropout nn.Dropout(0.5)self.fc2 nn.Linear(10, 2)self.relu nn.ReLU()def forward(self, x):out self.layer1(x)out self.layer2(out)out self.layer3(out)out out.view(out.size(0), -1)out self.relu(self.fc1(out))out self.fc2(out)return out         训练是用特斯拉T4g4dn-xlargeGPU机器进行的训练了10个训练周期。Jupyter Notebook 在项目的 GitHub 存储库中可用其中包含训练循环的代码。以下是每个纪元的训练循环的结果。 五、视觉转换器方法         视觉变压器架构设计有可定制的尺寸可以根据特定要求进行调整。对于这种大小的图像数据集此体系结构仍然很大。 from vision_tr.simple_vit import ViT model ViT(image_size224,patch_size32,num_classes2,dim128,depth12,heads8,mlp_dim1024,dropout0.1,emb_dropout0.1, ).to(device)         视觉转换器中的每个参数都起着关键作用如下所述 image_size224此参数指定模型输入图像的所需大小宽度和高度。在这种情况下图像的大小应为 224x224 像素。patch_size32图像被分成较小的补丁此参数定义每个补丁的大小宽度和高度。在本例中每个修补程序为 32x32 像素。num_classes2此参数表示分类任务中的类数。在此示例中模型旨在将输入分为两类猫和狗。dim128它指定模型中嵌入向量的维数。嵌入捕获每个图像修补程序的表示形式。depth12此参数定义视觉转换器模型编码器模型中的深度或层数。更高的深度允许更复杂的特征提取。heads8此参数表示模型自注意机制中的注意力头数。mlp_dim1024指定模型中多层感知器 MLP 隐藏层的维数。MLP 负责在自我注意后转换令牌表示。dropout0.1此参数控制辍学率这是一种用于防止过度拟合的正则化技术。它在训练期间将输入单位的一部分随机设置为 0。emb_dropout0.1它定义了专门应用于令牌嵌入的辍学率。此丢弃有助于防止在训练期间过度依赖特定令牌。 使用Tesla T4g4dn-xlargeGPU机器对分类任务的视觉转换器进行了20个训练周期的训练。训练进行了20个epoch而不是CNN使用的10个epoch因为训练损失的收敛速度很慢。以下是每个纪元的训练循环的结果。         CNN 方法在 75 个时期内达到了 10% 的准确率而视觉转换器模型的准确率达到了 69%训练时间要长得多。 六、结论         总之在比较CNN和Vision Transformer模型时在模型大小内存要求准确性和性能方面存在显着差异。CNN 型号传统上以其紧凑的尺寸和高效的内存利用率而闻名使其适用于资源受限的环境。事实证明它们在图像处理任务中非常有效并在各种计算机视觉应用中表现出出色的精度。另一方面视觉变压器提供了一种强大的方法来捕获图像中的全局依赖关系和上下文理解从而提高某些任务的性能。然而与CNN相比视觉变压器往往具有更大的模型尺寸和更高的内存要求。虽然它们可能会达到令人印象深刻的准确性尤其是在处理较大的数据集时但计算需求可能会限制它们在资源有限的场景中的实用性。最终CNN 和 Vision Transformer 模型之间的选择取决于手头任务的特定要求考虑可用资源、数据集大小以及模型复杂性、准确性和性能之间的权衡等因素。随着计算机视觉领域的不断发展预计这两种架构将取得进一步进展使研究人员和从业者能够根据他们的特定需求和限制做出更明智的选择。 变形金刚 计算机视觉
http://www.tj-hxxt.cn/news/225489.html

相关文章:

  • 制作一个网站数据库怎么做的php网站修改主页内容
  • 网站如何做下载链接企业官方网站如何做蓝v认证
  • 破解网站后台账号密码c2c网站的建设
  • 上海市建设局官方网站网站建设前景
  • 微信app开发价格表郑州seo优化培训
  • 四川省住房城乡建设厅网站桂林两江四湖在哪里
  • 个人微信网站建设网站开发需求预算
  • 网站建设宣传海报369网站建设
  • 网站设计论文的摘要自己做的相册网站
  • 个人网站备案类型淘宝客网站可以做百度推广
  • 如何招网站开发人员搜狗推广后台登录
  • 苏州住房建设局网站html做电子书网站
  • 免费个人网站自助建设企业主页制作方法
  • 网站开发新闻怎么写ppt万能模板免费下载
  • 创建个人网站的流程广州网络营销公司排名
  • 如何做解析网站wordpress菜单如何做
  • 北京平台网站建设哪里好手机网站打开很慢
  • 专门做app的原型网站家在深圳歌词
  • 固安做网站什么网站做的最好
  • 网站模板用什么软件做宣传册设计与制作模板免费
  • 潍坊公司注册网站建筑行业网站有哪些
  • 定制型网站制作哪家好广告设计需要什么学历
  • 朝阳企业网站建设方案省厅建设信息网网站
  • 做一张简单的app网站多钱手机网站常用代码
  • 高清logo网站网站维护建设招标
  • 坑梓网站建设咨询广州市 优化推广
  • 网站架构的优化涡阳哪里有做网站的
  • 网站开发周期定义郑州网站建设微信小程序
  • iis 新建网站 要登录物流网站哪个好
  • 东兴网站建设做网站项目前怎么收集需求