Transformers 4.37 中文文档(七十)(2)

简介: Transformers 4.37 中文文档(七十)

Transformers 4.37 中文文档(七十)(1)https://developer.aliyun.com/article/1564154


NatConfig

class transformers.NatConfig

<来源>

( patch_size = 4 num_channels = 3 embed_dim = 64 depths = [3, 4, 6, 5] num_heads = [2, 4, 8, 16] kernel_size = 7 mlp_ratio = 3.0 qkv_bias = True hidden_dropout_prob = 0.0 attention_probs_dropout_prob = 0.0 drop_path_rate = 0.1 hidden_act = 'gelu' initializer_range = 0.02 layer_norm_eps = 1e-05 layer_scale_init_value = 0.0 out_features = None out_indices = None **kwargs )

参数

  • patch_size (int, optional, defaults to 4) — 每个补丁的大小(分辨率)。注意:目前仅支持大小为 4 的补丁。
  • num_channels (int, optional, defaults to 3) — 输入通道数。
  • embed_dim (int, optional, defaults to 64) — 补丁嵌入的维度。
  • depths (List[int], optional, defaults to [3, 4, 6, 5]) — 编码器每个级别中的层数。
  • num_heads (List[int], optional, defaults to [2, 4, 8, 16]) — Transformer 编码器每层中的注意力头数。
  • kernel_size (int, optional, defaults to 7) — 邻域注意力核大小。
  • mlp_ratio (float, optional, defaults to 3.0) — MLP 隐藏维度与嵌入维度的比率。
  • qkv_bias (bool, optional, defaults to True) — 是否应向查询、键和值添加可学习偏置。
  • hidden_dropout_prob (float, optional, defaults to 0.0) — 嵌入和编码器中所有全连接层的 dropout 概率。
  • attention_probs_dropout_prob (float, optional, defaults to 0.0) — 注意力概率的 dropout 比率。
  • drop_path_rate (float, optional, defaults to 0.1) — 随机深度率。
  • hidden_act (str or function, optional, defaults to "gelu") — 编码器中的非线性激活函数(函数或字符串)。如果是字符串,支持"gelu""relu""selu""gelu_new"
  • initializer_range (float, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。
  • layer_norm_eps (float, optional, defaults to 1e-05) — 层归一化层使用的 epsilon。
  • layer_scale_init_value (float, optional, defaults to 0.0) — 层缩放的初始值。如果<=0,则禁用。
  • out_features (List[str], optional) — 如果用作主干,要输出的特征列表。可以是"stem""stage1""stage2"等(取决于模型有多少阶段)。如果未设置且设置了out_indices,将默认为相应的阶段。如果未设置且未设置out_indices,将默认为最后一个阶段。必须按照stage_names属性中定义的顺序。
  • out_indices (List[int], optional) — 如果用作主干,要输出的特征的索引列表。可以是 0、1、2 等(取决于模型有多少阶段)。如果未设置且设置了out_features,将默认为相应的阶段。如果未设置且未设置out_features,将默认为最后一个阶段。必须按照stage_names属性中定义的顺序。

这是一个配置类,用于存储 NatModel 的配置。根据指定的参数实例化一个 Nat 模型,定义模型架构。使用默认值实例化配置将产生类似于 Nat shi-labs/nat-mini-in1k-224架构的配置。

配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。

示例:

>>> from transformers import NatConfig, NatModel
>>> # Initializing a Nat shi-labs/nat-mini-in1k-224 style configuration
>>> configuration = NatConfig()
>>> # Initializing a model (with random weights) from the shi-labs/nat-mini-in1k-224 style configuration
>>> model = NatModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

NatModel

class transformers.NatModel

< source >

( config add_pooling_layer = True )

参数

  • config (NatConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained() 方法以加载模型权重。

裸的 Nat 模型变压器输出原始隐藏状态,没有特定的头部。这个模型是 PyTorch torch.nn.Module 的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有信息。

forward

< source >

( pixel_values: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.nat.modeling_nat.NatModelOutput or tuple(torch.FloatTensor

参数

  • pixel_values (torch.FloatTensor,形状为 (batch_size, num_channels, height, width)) — 像素值。像素值可以使用 AutoImageProcessor 获取。有关详细信息,请参阅 ViTImageProcessor.call()。
  • output_attentions (bool, 可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool, 可选) — 是否返回一个 ModelOutput 而不是一个普通元组。

返回

transformers.models.nat.modeling_nat.NatModelOutputtuple(torch.FloatTensor)

一个 transformers.models.nat.modeling_nat.NatModelOutput 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包括根据配置(NatConfig)和输入的不同元素。

  • last_hidden_state (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。
  • pooler_output (torch.FloatTensor,形状为 (batch_size, hidden_size)可选,当传递 add_pooling_layer=True 时返回) — 最后一层隐藏状态的平均池化。
  • hidden_states (tuple(torch.FloatTensor), 可选, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)torch.FloatTensor 元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
    模型在每个层的输出处的隐藏状态以及初始嵌入输出。
  • attentions (tuple(torch.FloatTensor), 可选, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor 元组(每个阶段一个)。
    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。
  • reshaped_hidden_states (tuple(torch.FloatTensor), 可选, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, hidden_size, height, width)torch.FloatTensor 元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
    模型在每个层的输出处的隐藏状态以及重塑以包括空间维度的初始嵌入输出。

NatModel 的前向方法,覆盖了 __call__ 特殊方法。

尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者则默默地忽略它们。

示例:

>>> from transformers import AutoImageProcessor, NatModel
>>> import torch
>>> from datasets import load_dataset
>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]
>>> image_processor = AutoImageProcessor.from_pretrained("shi-labs/nat-mini-in1k-224")
>>> model = NatModel.from_pretrained("shi-labs/nat-mini-in1k-224")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 7, 7, 512]

NatForImageClassification

class transformers.NatForImageClassification

<来源>

( config )

参数

  • config(NatConfig)— 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。

在顶部带有图像分类头部的 Nat 模型变换器(在[CLS] 标记的最终隐藏状态之上的线性层),例如用于 ImageNet。

这个模型是 PyTorch 的torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有信息。

forward

<来源>

( pixel_values: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.nat.modeling_nat.NatImageClassifierOutput or tuple(torch.FloatTensor)

参数

  • pixel_values(形状为(batch_size, num_channels, height, width)torch.FloatTensor)— 像素值。可以使用 AutoImageProcessor 获取像素值。有关详细信息,请参见 ViTImageProcessor.call()。
  • output_attentionsbool可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_statesbool可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dictbool可选)— 是否返回一个 ModelOutput 而不是一个普通的元组。
  • labels(形状为(batch_size,)torch.LongTensor可选)— 用于计算图像分类/回归损失的标签。索引应在[0, ..., config.num_labels - 1]范围内。如果config.num_labels == 1,则计算回归损失(均方损失),如果config.num_labels > 1,则计算分类损失(交叉熵)。

返回

transformers.models.nat.modeling_nat.NatImageClassifierOutputtuple(torch.FloatTensor)

一个transformers.models.nat.modeling_nat.NatImageClassifierOutput或一个torch.FloatTensor元组(如果传递了return_dict=Falseconfig.return_dict=False时)包含各种元素,具体取决于配置(NatConfig)和输入。

  • loss(形状为(1,)torch.FloatTensor可选,当提供labels时返回)— 分类(如果config.num_labels==1则为回归)损失。
  • logits(形状为(batch_size, config.num_labels)torch.FloatTensor)— 分类(如果config.num_labels==1则为回归)得分(SoftMax 之前)。
  • hidden_statestuple(torch.FloatTensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回)— 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
    模型在每个层的输出处的隐藏状态以及初始嵌入输出。
  • attentions (tuple(torch.FloatTensor), 可选的, 当传递output_attentions=True或当config.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每个阶段一个)。
    注意力权重在注意力 softmax 之后,用于计算自注意力头中的加权平均值。
  • reshaped_hidden_states (tuple(torch.FloatTensor), 可选的, 当传递output_hidden_states=True或当config.output_hidden_states=True时返回) — 形状为(batch_size, hidden_size, height, width)torch.FloatTensor元组(一个用于嵌入的输出 + 一个用于每个阶段的输出)。
    模型在每一层输出的隐藏状态,加上重新塑造以包括空间维度的初始嵌入输出。

NatForImageClassification 的前向方法,覆盖了__call__特殊方法。

虽然前向传递的步骤需要在这个函数内定义,但应该在此之后调用Module实例,而不是这个函数,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import AutoImageProcessor, NatForImageClassification
>>> import torch
>>> from datasets import load_dataset
>>> dataset = load_dataset("huggingface/cats-image")
>>> image = dataset["test"]["image"][0]
>>> image_processor = AutoImageProcessor.from_pretrained("shi-labs/nat-mini-in1k-224")
>>> model = NatForImageClassification.from_pretrained("shi-labs/nat-mini-in1k-224")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> # model predicts one of the 1000 ImageNet classes
>>> predicted_label = logits.argmax(-1).item()
>>> print(model.config.id2label[predicted_label])
tiger cat

PoolFormer

原始文本:huggingface.co/docs/transformers/v4.37.2/en/model_doc/poolformer

概述

PoolFormer 模型是由 Sea AI Labs 在MetaFormer is Actually What You Need for Vision中提出的。该工作的目标不是设计复杂的令牌混合器来实现 SOTA 性能,而是展示变压器模型的能力主要源自通用架构 MetaFormer。

论文摘要如下:

变压器在计算机视觉任务中展现出巨大潜力。人们普遍认为它们基于注意力的令牌混合器模块对其能力做出了最大贡献。然而,最近的研究表明,变压器中基于注意力的模块可以被空间  MLP  替代,结果模型仍然表现出色。基于这一观察,我们假设变压器的通用架构,而不是特定的令牌混合器模块,对模型的性能更为重要。为了验证这一点,我们故意将变压器中的注意力模块替换为一个非常简单的空间池化运算符,仅进行最基本的令牌混合。令人惊讶的是,我们观察到衍生模型  PoolFormer 在多个计算机视觉任务上取得了竞争性能。例如,在 ImageNet-1K 上,PoolFormer 实现了 82.1%的  top-1 准确率,超过了经过良好调整的视觉变压器/类似 MLP 基线 DeiT-B/ResMLP-B24 的  0.3%/1.1%准确率,参数减少了 35%/52%,MACs 减少了 48%/60%。PoolFormer  的有效性验证了我们的假设,并促使我们提出“MetaFormer”概念,这是从变压器中抽象出来的通用架构,而不指定令牌混合器。基于广泛的实验,我们认为  MetaFormer 是实现最近变压器和类似 MLP 模型在视觉任务上取得优越结果的关键因素。这项工作呼吁未来更多的研究致力于改进  MetaFormer,而不是专注于令牌混合器模块。此外,我们提出的 PoolFormer 可以作为未来 MetaFormer  架构设计的起点基线。

下图展示了 PoolFormer 的架构。摘自原始论文

此模型由heytanay贡献。原始代码可以在这里找到。

使用提示

  • PoolFormer 具有分层架构,其中存在一个简单的平均池化层,而不是注意力。模型的所有检查点都可以在hub上找到。
  • 可以使用 PoolFormerImageProcessor 来为模型准备图像。
  • 与大多数模型一样,PoolFormer 有不同的大小,详情可以在下表中找到。
模型变体 深度 隐藏大小 参数(百万) ImageNet-1k Top 1
s12 [2, 2, 6, 2] [64, 128, 320, 512] 12 77.2
s24 [4, 4, 12, 4] [64, 128, 320, 512] 21 80.3
s36 [6, 6, 18, 6] [64, 128, 320, 512] 31 81.4
m36 [6, 6, 18, 6] [96, 192, 384, 768] 56 82.1
m48 [8, 8, 24, 8] [96, 192, 384, 768] 73 82.5

资源

以下是官方 Hugging Face 和社区资源(由🌎表示),可帮助您开始使用 PoolFormer。

图像分类

  • PoolFormerForImageClassification 由这个示例脚本笔记本支持。
  • 另请参阅:图像分类任务指南

如果您有兴趣提交资源以包含在此处,请随时打开一个 Pull Request,我们将对其进行审查!资源应该展示一些新的东西,而不是重复现有资源。

PoolFormerConfig

class transformers.PoolFormerConfig

<来源>

( num_channels = 3 patch_size = 16 stride = 16 pool_size = 3 mlp_ratio = 4.0 depths = [2, 2, 6, 2] hidden_sizes = [64, 128, 320, 512] patch_sizes = [7, 3, 3, 3] strides = [4, 2, 2, 2] padding = [2, 1, 1, 1] num_encoder_blocks = 4 drop_path_rate = 0.0 hidden_act = 'gelu' use_layer_scale = True layer_scale_init_value = 1e-05 initializer_range = 0.02 **kwargs )

参数

  • num_channels (int, 可选, 默认为 3) — 输入图像中的通道数。
  • patch_size (int, 可选, 默认为 16) — 输入补丁的大小。
  • stride (int, 可选, 默认为 16) — 输入补丁的步幅。
  • pool_size (int, 可选, 默认为 3) — 池化窗口的大小。
  • mlp_ratio (float, 可选, 默认为 4.0) — MLP 输出通道数与输入通道数的比率。
  • depths (list, 可选, 默认为[2, 2, 6, 2]) — 每个编码器块的深度。
  • hidden_sizes (list, 可选, 默认为[64, 128, 320, 512]) — 每个编码器块的隐藏大小。
  • patch_sizes (list, 可选, 默认为[7, 3, 3, 3]) — 每个编码器块的输入补丁的大小。
  • strides (list, 可选, 默认为[4, 2, 2, 2]) — 每个编码器块的输入补丁的步幅。
  • padding (list, 可选, 默认为[2, 1, 1, 1]) — 每个编码器块的输入补丁的填充。
  • num_encoder_blocks (int, 可选, 默认为 4) — 编码器块的数量。
  • drop_path_rate (float, 可选, 默认为 0.0) — 丢弃层的丢弃率。
  • hidden_act (str, 可选, 默认为"gelu") — 隐藏层的激活函数。
  • use_layer_scale (bool, 可选, 默认为True) — 是否使用层比例。
  • layer_scale_init_value (float, 可选, 默认为 1e-05) — 层比例的初始值。
  • initializer_range (float, 可选, 默认为 0.02) — 权重的初始化范围。

这是用于存储 PoolFormerModel 配置的类。根据指定的参数实例化一个 PoolFormer 模型,定义模型架构。使用默认值实例化配置将产生类似于 PoolFormer sail/poolformer_s12架构的配置。

配置对象继承自 PretrainedConfig,可用于控制模型输出。阅读 PretrainedConfig 的文档以获取更多信息。

示例:

>>> from transformers import PoolFormerConfig, PoolFormerModel
>>> # Initializing a PoolFormer sail/poolformer_s12 style configuration
>>> configuration = PoolFormerConfig()
>>> # Initializing a model (with random weights) from the sail/poolformer_s12 style configuration
>>> model = PoolFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

PoolFormerFeatureExtractor

class transformers.PoolFormerFeatureExtractor

<来源>

( *args **kwargs )
__call__

<来源>

( images **kwargs )

预处理一张图片或一批图片。


Transformers 4.37 中文文档(七十)(3)https://developer.aliyun.com/article/1564156

相关文章
|
8月前
|
人工智能 安全 数据可视化
面向业务落地的AI产品评测体系设计与平台实现
在AI技术驱动下,淘宝闪购推进大模型应用落地,构建覆盖“评什么、怎么评、如何度量”的全链路评测体系。面对研发模式变革与Agent复杂性挑战,平台以端到端评测为主、分层测评为辅,打造可回放环境、多裁判机制及变更分级策略,实现质量与效率平衡。已支撑10+部门、90+AI产品,沉淀千余评测集,问题解决率超80%。未来将拓展多模态评测、可视化标注与插件市场,推动评测生态化发展。
|
数据库 应用服务中间件 Dubbo
|
8月前
|
JavaScript 前端开发 图形学
Three.js:Web 最重要的 3D 渲染引擎的技术综述
Three.js 是 Web 实时 3D 图形的事实标准,作为 WebGL 的结构化抽象层,它通过场景图、缓冲几何体、材质系统与高效渲染循环,简化 GPU 编程。本文深入解析其架构设计、性能优化关键点及底层原理,揭示高性能 3D 应用背后的工程技术。
987 1
|
7月前
|
弹性计算 网络协议 安全
2026年阿里云最新活动参考:云服务器实时活动与优惠政策,购买和试用教程
2026年,阿里云持续推出多样化的优惠政策与活动,帮助个人开发者、中小企业及大型企业以更低的成本上云。本文将基于最新资讯,全面解析阿里云服务器的优惠政策、购买与试用教程以及当前热门活动,为您提供一站式上云指南。无论是初学者还是资深用户,都能通过本文找到适合自身需求的优惠方案,以供大家了解最新优惠信息及选择参考。
708 16
|
机器学习/深度学习 传感器 监控
机器学习:强化学习中的探索策略全解析
在机器学习的广阔领域中,强化学习(Reinforcement Learning, RL)无疑是一个充满魅力的子领域。它通过智能体与环境的交互,学习如何在特定的任务中做出最优决策。然而,在这个过程中,探索(exploration)和利用(exploitation)的平衡成为了智能体成功的关键。本文将深入探讨强化学习中的探索策略,包括其重要性、常用方法以及代码示例来论证这些策略的效果。
|
Python
课时19:Python的基本语法
今天给大家带来分享的是 Python 的基本语法,分为以下六个部分。 1.在 Python 中严格区分大小写 2.Python 中的每一行就是一条语句,每条语句以换行结束 3.Python 中每一行语句不要过长 4.条语句可以分多行编写,语句后边以\结尾 5.Python 是缩进严格的语言,不要随便写缩进 6.在 Python 中使用#来表示注释
433 2
|
存储 PHP 文件存储
32 单文件上传
路老师分享PHP文件上传教程,涵盖配置php.ini、使用$_FILES变量和move_uploaded_file()函数等关键步骤,帮助你轻松实现单文件上传功能。纯干货,技术知识分享。
|
SQL PHP 数据库
PHP:ThinkPHP5数据库操作增删改查-Db类
PHP:ThinkPHP5数据库操作增删改查-Db类
437 0
PHP:ThinkPHP5数据库操作增删改查-Db类
ly~
|
缓存 监控 安全
反向代理服务器的常见故障有哪些?
反向代理服务器常遇到的故障包括配置错误、网络问题、性能瓶颈及安全漏洞。配置相关故障如错误监听端口、域名配置不当及代理转发规则错误,可使用`netstat -tuln`检查端口状态,并验证域名及DNS解析。网络故障涉及连接中断和带宽不足,利用`ping`和`traceroute`检测连通性,用`iftop`监控带宽。性能问题如资源耗尽和缓存不一致需通过`top`监控资源使用,并检查缓存策略。安全故障包括DDoS攻击和配置漏洞,应使用流量分析工具检测异常并加强安全配置,确保SSL/TLS加密和访问控制策略正确无误。
ly~
1152 3
|
SQL 流计算
Flink SQL 功能解密系列 —— 数据去重的技巧和思考
去重逻辑在业务处理中使用广泛,大致可以分两类:DISTINCT去重和FIRST_VALUE主键去重,两者的区别是DISTINCT去重是对整行数据进行去重,比如tt里面数据可能会有重复,我们要去掉重复的数据;FIRST_VALUE是根据主键进行去重,可以看成是一种业务层面的去重,但是真实的业务场景使用也很普遍,比如一个用户有多次点击,业务上只需要取第一条。