Transformers documentation

SAM3-LiteText

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

该模型于 2026-02-12 在 HF papers 上发布,并于 2026-04-13 贡献至 Hugging Face Transformers。

SAM3-LiteText

概述

SAM3-LiteText 由 Chengxi Zeng、Yuxuan Jiang、Ge Gao、Shuai Wang、Duolikun Danier、Bin Zhu、Stevan Rudinac、David Bull 和 Fan Zhang 在 SAM3-LiteText: An Anatomical Study of the SAM3 Text Encoder for Efficient Vision-Language Segmentation 中提出。

SAM3-LiteText 是 SAM3 的轻量级变体,它用基于 MobileCLIP 的紧凑文本编码器替换了原模型中庞大的 SAM3 文本编码器(353M 参数),该编码器通过知识蒸馏进行了优化。SAM3 的 ViT-H 图像编码器保持不变。这一改动将文本编码器的参数量减少了最多 88%,同时保持了与原始模型相当的分割性能。

该论文的摘要如下:

诸如 SAM3 的视觉-语言分割模型支持灵活、基于提示的视觉定位,但它们继承了原本为开放式语言理解而设计的大型通用文本编码器。在实际应用中,分割提示通常简短、结构化且语义受限,这导致文本编码器的容量存在严重的过度配置,并带来持续的算力与内存开销。本文对视觉-语言分割中的文本提示进行了大规模解剖式分析,涵盖多个基准测试中的 404,796 个真实提示。分析揭示了严重的冗余性:大多数上下文窗口未被充分利用,词汇使用高度稀疏,且尽管表示维度很高,文本嵌入仍位于低维流形上。基于这些发现,我们提出了 SAM3-LiteText,一个轻量级文本编码框架,它使用通过知识蒸馏优化的紧凑 MobileCLIP 学生模型来替换原始 SAM3 的文本编码器。在图像和视频分割基准上的大量实验表明,SAM3-LiteText 将文本编码器的参数量减少了最多 88%,显著降低了静态内存占用,同时保持了与原始模型相当的分割性能。

文本编码器架构基于 MobileCLIP,共有三种变体:

变体文本编码器文本参数归约
SAM3-LiteText-S0-16MobileCLIP-S042.54M~88%
SAM3-LiteText-S1-16MobileCLIP-S163.53M~82%
SAM3-LiteText-L-16MobileCLIP2-L123.80M~65%

该模型由 nielsr 和 yonigozlan 贡献。 原始代码可在此处找到。

用法

SAM3-LiteText 是 SAM3 的即插即用替代方案,采用轻量级文本编码器。它使用相同的处理器(Sam3Processor),并支持相同的提示接口。有关详细的使用示例(包括文本提示、框提示、批量推理等),请参阅 SAM3 文档。

from io import BytesIO

from huggingface_hub.utils import httpx
from PIL import Image

from transformers import AutoModel, AutoProcessor


model = AutoModel.from_pretrained("yonigozlan/sam3-litetext-s0", device_map="auto")
processor = AutoProcessor.from_pretrained("yonigozlan/sam3-litetext-s0")

image_url = "http://images.cocodataset.org/val2017/000000077595.jpg"
image = Image.open(BytesIO(httpx.get(image_url).content)).convert("RGB")

inputs = processor(images=image, text="ear", return_tensors="pt").to(model.device)

outputs = model(**inputs)

results = processor.post_process_instance_segmentation(
    outputs,
    threshold=0.5,
    mask_threshold=0.5,
    target_sizes=inputs.get("original_sizes").tolist(),
)[0]

print(f"Found {len(results['masks'])} objects")

Sam3LiteTextConfig

class transformers.Sam3LiteTextConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonegeometry_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedetr_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedetr_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonemask_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinitializer_range: float = 0.02 )

参数

  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig],可选) — 视觉骨干网络的配置对象或字典。
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig],可选) — 文本骨干网络的配置对象或字典。
  • geometry_encoder_config (dict 或 Sam3LiteTextGeometryEncoderConfig,可选) — 几何编码器的配置。
  • detr_encoder_config (dict 或 Sam3LiteTextDETREncoderConfig,可选) — DETR 编码器的配置。
  • detr_decoder_config (dict 或 Sam3LiteTextDETRDecoderConfig,可选) — DETR 解码器的配置。
  • mask_decoder_config (dict 或 Sam3LiteTextMaskDecoderConfig,可选) — 掩码解码器的配置。
  • initializer_range (float,可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。

这是用于存储 Sam3LiteTextModel 配置的类。它根据指定的参数实例化 Sam3 Lite Text 模型,并定义模型架构。使用默认值实例化配置将得到与 yonigozlan/sam3-litetext-s0 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

示例:

>>> from transformers import Sam3LiteTextConfig, Sam3LiteTextModel

>>> # Initializing a SAM3_LITE_TEXT configuration
>>> configuration = Sam3LiteTextConfig()

>>> # Initializing a model from the configuration
>>> model = Sam3LiteTextModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Sam3LiteTextTextConfig

class transformers.Sam3LiteTextTextConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 49408hidden_size: int = 512intermediate_size: int = 2048projection_dim: int = 512num_hidden_layers: int = 12num_attention_heads: int = 8max_position_embeddings: int = 77hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_dropout: float = 0.0use_repmixer_blocks: bool = Truelayer_scale_init_value: float = 1e-05repmixer_kernel_size: int = 11 )

参数

  • vocab_size (int,可选,默认为 49408) — 模型的词汇表大小。定义了 input_ids 可以表示的不同 token 数量。
  • hidden_size (int,可选,默认为 512) — 隐藏表示的维度。
  • intermediate_size (int,可选,默认为 2048) — MLP 表示的维度。
  • projection_dim (int,可选,默认为 512) — 文本和视觉投影层的维度。
  • num_hidden_layers (int, 可选, 默认为 12) — Transformer 解码器中的隐藏层数量。
  • num_attention_heads (int,可选,默认为 8) — Transformer 解码器中每个注意力层的注意力头数量。
  • max_position_embeddings (int,可选,默认为 77) — 该模型可能使用的最大序列长度。
  • hidden_act (str,可选,默认为 gelu) — 解码器中的非线性激活函数(函数或字符串)。例如,"gelu"、 "relu"、"silu" 等。
  • layer_norm_eps (float,可选,默认为 1e-05) — 层归一化层所使用的 epsilon 值。
  • attention_dropout (float,可选,默认为 0.0) — 注意力概率的 dropout 比率。
  • use_repmixer_blocks (bool,可选,默认为 True) — 是否对编码器的第一层和最后一层使用 RepMixer 块(MobileCLIP 风格)。 当 False 时,所有层均为标准的 Transformer 编码器层。
  • layer_scale_init_value (float, 可选,默认为 1e-5) — RepMixer 块(残差分支)中可学习 layer-scale 参数的初始值。
  • repmixer_kernel_size (int,可选,默认为 11) — RepMixer 块中深度可分离卷积的卷积核大小(用于 token mixer 和卷积前馈路径)。

这是用于存储 Sam3LiteTextModel 配置的类。它根据指定的参数实例化 Sam3 Lite Text 模型,并定义模型架构。使用默认值实例化配置将得到与 yonigozlan/sam3-litetext-s0 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

Sam3LiteTextGeometryEncoderConfig

class transformers.Sam3LiteTextGeometryEncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_layers: int = 3num_attention_heads: int = 8intermediate_size: int = 2048dropout: float | int = 0.1hidden_act: str = 'relu'hidden_dropout: float | int = 0.0layer_norm_eps: float = 1e-06roi_size: int = 7initializer_range: float = 0.02 )

参数

  • hidden_size (int,可选,默认为 256) — 隐藏表示的维度。
  • num_layers (int,可选,默认为 3) — Transformer 解码器中的隐藏层数。
  • num_attention_heads (int,可选,默认为 8) — Transformer 解码器中每个注意力层的注意力头数量。
  • intermediate_size (int,可选,默认为 2048) — MLP 表示的维度。
  • dropout (Union[float, int],可选,默认为 0.1) — 所有 dropout 层的比率。
  • hidden_act (str,可选,默认为 relu) — 解码器中的非线性激活函数(函数或字符串)。例如,"gelu"、 "relu"、"silu" 等。
  • hidden_dropout (Union[float, int],可选,默认为 0.0) — 嵌入层、编码器和池化层中所有全连接层的 dropout 概率。
  • layer_norm_eps (float,可选,默认为 1e-06) — 层归一化层所使用的 epsilon 值。
  • roi_size (int,可选,默认为 7) — 用于框池化操作的 ROI 尺寸。
  • initializer_range (float,可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。

这是用于存储 Sam3LiteTextModel 配置的类。它根据指定的参数实例化 Sam3 Lite Text 模型,并定义模型架构。使用默认值实例化配置将得到与 yonigozlan/sam3-litetext-s0 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

Sam3LiteTextDETREncoderConfig

class transformers.Sam3LiteTextDETREncoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_layers: int = 6num_attention_heads: int = 8intermediate_size: int = 2048dropout: float | int = 0.1hidden_act: str = 'relu'hidden_dropout: float | int = 0.0layer_norm_eps: float = 1e-06initializer_range: float = 0.02 )

参数

  • hidden_size (int,可选,默认为 256) — 隐藏表示的维度。
  • num_layers (int,可选,默认为 6) — Transformer 解码器中的隐藏层数。
  • num_attention_heads (int,可选,默认为 8) — Transformer 解码器中每个注意力层的注意力头数量。
  • intermediate_size (int,可选,默认为 2048) — MLP 表示的维度。
  • dropout (Union[float, int],可选,默认为 0.1) — 所有 dropout 层的比率。
  • hidden_act (str,可选,默认为 relu) — 解码器中的非线性激活函数(函数或字符串)。例如,"gelu"、 "relu"、"silu" 等。
  • hidden_dropout (float,可选,默认值为 0.0) — 隐藏状态的 Dropout 概率。
  • layer_norm_eps (float,可选,默认为 1e-06) — 层归一化层所使用的 epsilon 值。
  • initializer_range (float,可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。

这是用于存储 Sam3LiteTextModel 配置的类。它根据指定的参数实例化 Sam3 Lite Text 模型,并定义模型架构。使用默认值实例化配置将得到与 yonigozlan/sam3-litetext-s0 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

Sam3LiteTextDETRDecoderConfig

类 transformers.Sam3LiteTextDETRDecoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_layers: int = 6num_queries: int = 200num_attention_heads: int = 8intermediate_size: int = 2048dropout: float | int = 0.1hidden_act: str = 'relu'hidden_dropout: float | int = 0.0layer_norm_eps: float = 1e-06initializer_range: float = 0.02 )

参数

  • hidden_size (int,可选,默认为 256) — 隐藏表示的维度。
  • num_layers (int,可选,默认为 6) — Transformer 解码器中的隐藏层数。
  • num_queries (int,可选,默认为 200) — 对象查询的数量。
  • num_attention_heads (int,可选,默认为 8) — Transformer 解码器中每个注意力层的注意力头数量。
  • intermediate_size (int,可选,默认为 2048) — MLP 表示的维度。
  • dropout (Union[float, int],可选,默认为 0.1) — 所有 dropout 层的比率。
  • hidden_act (str,可选,默认为 relu) — 解码器中的非线性激活函数(函数或字符串)。例如,"gelu"、 "relu"、"silu" 等。
  • hidden_dropout (Union[float, int],可选,默认为 0.0) — 嵌入层、编码器和池化层中所有全连接层的 dropout 概率。
  • layer_norm_eps (float,可选,默认为 1e-06) — 层归一化层所使用的 epsilon 值。
  • initializer_range (float,可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。

这是用于存储 Sam3LiteTextModel 配置的类。它根据指定的参数实例化 Sam3 Lite Text 模型,并定义模型架构。使用默认值实例化配置将得到与 yonigozlan/sam3-litetext-s0 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

Sam3LiteTextMaskDecoderConfig

class transformers.Sam3LiteTextMaskDecoderConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_upsampling_stages: int = 3layer_norm_eps: float = 1e-06dropout: float | int = 0.0num_attention_heads: int = 8initializer_range: float = 0.02 )

参数

  • hidden_size (int,可选,默认为 256) — 隐藏表示的维度。
  • num_upsampling_stages (int,可选,默认为 3) — 像素解码器(FPN)中的上采样阶段数量。
  • layer_norm_eps (float,可选,默认为 1e-06) — 层归一化层所使用的 epsilon 值。
  • dropout (Union[float, int],可选,默认为 0.0) — 所有 dropout 层的比率。
  • num_attention_heads (int,可选,默认为 8) — Transformer 解码器中每个注意力层的注意力头数量。
  • initializer_range (float,可选,默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。

这是用于存储 Sam3LiteTextModel 配置的类。它根据指定的参数实例化 Sam3 Lite Text 模型,并定义模型架构。使用默认值实例化配置将得到与 yonigozlan/sam3-litetext-s0 类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请参阅 PreTrainedConfig 的文档。

Sam3LiteTextTextModel

class transformers.Sam3LiteTextTextModel

< >

( config: Sam3LiteTextTextConfig )

参数

  • config (Sam3LiteTextTextConfig) — 模型的配置类,包含模型的所有参数。使用配置文件进行初始化时,不会加载与模型关联的权重,仅加载配置。请查看 from_pretrained() 方法以加载模型权重。

MobileCLIP MCT 文本编码器,用于 EfficientSAM3 LiteText。

当 config.use_repmixer_blocks 为 True 时,第一层和最后一层是 Sam3LiteTextRepMixerBlock 模块;其余层均为标准的 Sam3LiteTextTextEncoderLayer 层。

该模型继承自 PreTrainedModel。请查阅父类文档,了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头等)。

该模型也是 PyTorch torch.nn.Module 的子类。 请将其作为常规的 PyTorch Module 使用,有关通用用法和行为的所有事项,请参阅 PyTorch 文档。

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sam3LiteTextTextEncoderOutput or tuple(torch.Tensor)

参数

  • input_ids (torch.LongTensor 形状为 (batch_size, sequence_length), ,可选) — 输入序列中各 token 在词汇表中的索引。默认情况下,填充(padding)将被忽略。

    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。

    什么是输入 ID?

  • attention_mask (torch.Tensor 形状为 (batch_size, sequence_length), ,可选) — 用于避免对填充 token 索引执行注意力机制的掩码。掩码值取自 [0, 1]:
    • 1 表示未被屏蔽的 token,
    • 对于被掩码的 token,值为 0。

    什么是注意力掩码?

返回值

Sam3LiteTextTextEncoderOutput 或 tuple(torch.Tensor)

Sam3LiteTextTextEncoderOutput 或 torch.Tensor 元组(当传入 return_dict=False 或 config.return_dict=False 时),其包含的元素取决于配置(Sam3LiteTextConfig)和输入。

Sam3LiteTextTextModel 的 forward 方法重写了 __call__ 特殊方法。

尽管前向传播的实现需要在此函数中定义,但之后应调用 Module 实例,而不是直接调用此函数,因为前者会负责执行预处理和后处理步骤,而后者则会静默地忽略这些步骤。

  • last_hidden_state(形状为 (batch_size, sequence_length, hidden_size) 的 torch.Tensor)— 来自文本编码器的完整隐藏状态序列。
  • pooler_output(形状为 (batch_size, projection_dim) 的 torch.Tensor)— 通过内部 CLIP 风格的投影映射到 projection_dim 的 EOT 池化输出。
  • hidden_states (tuple(torch.Tensor),可选) — 各层隐藏状态的元组,当 output_hidden_states=True 时返回。
  • attentions(tuple(torch.Tensor),可选)— 每个 Transformer 层的注意力权重元组,当 output_attentions=True 时返回。

Sam3LiteTextModel

class transformers.Sam3LiteTextModel

< >

( config: Sam3LiteTextConfig )

forward

< >

( pixel_values: typing.Optional[torch.Tensor] = Nonevision_embeds: transformers.models.sam3_lite_text.modeling_sam3_lite_text.Sam3LiteTextVisionEncoderOutput | None = Noneinput_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetext_embeds: typing.Optional[torch.Tensor] = Noneinput_boxes: typing.Optional[torch.Tensor] = Noneinput_boxes_labels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sam3LiteTextImageSegmentationOutput or tuple(torch.Tensor)

参数

  • pixel_values (torch.Tensor,形状为 (batch_size, num_channels, image_size, image_size),可选) — 与输入图像对应的张量。可以使用 Sam3ImageProcessor 获取像素值。有关详细信息,请参阅 Sam3ImageProcessor.call()(Sam3Processor 使用 Sam3ImageProcessor 来处理图像)。
  • vision_embeds (Sam3LiteTextVisionEncoderOutput,可选) — 预计算的视觉嵌入。可用于轻松复用视觉嵌入。如果提供了该参数,则不应传入 pixel_values。与 pixel_values 互斥。
  • input_ids (torch.LongTensor 形状为 (batch_size, sequence_length), ,可选) — 输入序列中各 token 在词汇表中的索引。默认情况下,填充(padding)将被忽略。

    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。

    什么是输入 ID?

  • attention_mask (torch.Tensor 形状为 (batch_size, sequence_length), ,可选) — 用于避免对填充 token 索引执行注意力机制的掩码。掩码值取自 [0, 1]:
    • 1 表示未被屏蔽的 token,
    • 对于被掩码的 token,值为 0。

    什么是注意力掩码?

  • text_embeds(形状为 (batch_size, sequence_length, hidden_size) 的 torch.Tensor,可选) — 预计算好的文本嵌入。可用于轻松复用文本嵌入。如果提供了该参数,则不应传入 input_ids。与 input_ids 互斥。
  • input_boxes (torch.Tensor,形状为 (batch_size, num_boxes, 4),可选) — 归一化到 [0, 1] 范围内的框坐标,格式为 (cx, cy, w, h)。
  • input_boxes_labels(形状为 (batch_size, num_boxes) 的 torch.LongTensor,可选)— 框的标签:1(正样本)、0(负样本)。

返回值

Sam3LiteTextImageSegmentationOutput 或 tuple(torch.Tensor)

Sam3LiteTextImageSegmentationOutput 或 torch.Tensor 元组(当传入 return_dict=False 或 config.return_dict=False 时),其包含的元素取决于配置(Sam3LiteTextConfig)和输入。

Sam3LiteTextModel 的 forward 方法重写了 __call__ 特殊方法。

尽管前向传播的实现需要在此函数中定义,但之后应调用 Module 实例,而不是直接调用此函数,因为前者会负责执行预处理和后处理步骤,而后者则会静默地忽略这些步骤。

  • pred_masks(形状为 (batch_size, num_queries, height, width) 的 torch.Tensor)— 每个查询的预测分割掩码。
  • pred_boxes(形状为 (batch_size, num_queries, 4) 的 torch.Tensor)— 以 (x1, y1, x2, y2) 格式表示的预测边界框。
  • pred_logits (torch.Tensor,形状为 (batch_size, num_queries),可选) — 每个查询的分类置信度分数,通过解码器查询特征与文本特征之间的点积计算得出。
  • presence_logits (torch.Tensor,形状为 (batch_size, 1),可选) — 来自 DETR 解码器 presence token 的存在性 logits(仅最后一层)。这些 logits 指示场景中是否存在物体。可与 pred_logits 相乘来计算最终分数:final_scores = pred_logits.sigmoid() * presence_logits.sigmoid()。
  • semantic_seg(形状为 (batch_size, 1, height, width) 的 torch.Tensor,可选)— 语义分割输出。
  • decoder_hidden_states (tuple[torch.Tensor],可选) — 来自所有 DETR 解码器层的隐藏状态元组。每个张量的形状为 (batch_size, num_queries, hidden_size)。
  • decoder_reference_boxes(形状为 (num_layers, batch_size, num_queries, 4) 的 torch.Tensor,可选)— 来自所有 DETR 解码器层的参考框。
  • encoder_hidden_states (tuple[torch.Tensor],可选) — 来自所有 DETR 编码器层的隐藏状态元组。
  • vision_hidden_states (tuple[torch.Tensor],可选) — 来自所有视觉编码器(ViT)层的隐藏状态元组。
  • vision_attentions (tuple[torch.Tensor],可选) — 来自视觉编码器(ViT)层的注意力权重。
  • detr_encoder_attentions (tuple[torch.Tensor],可选) — 来自 DETR 编码器层的注意力权重。
  • detr_decoder_attentions (tuple[torch.Tensor], 可选) — 来自 DETR 解码器层的注意力权重(自注意力和交叉注意力)。
  • mask_decoder_attentions (tuple[torch.Tensor],可选) — 来自 mask decoder 层的注意力权重。

示例:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoModel, AutoProcessor

>>> model = AutoModel.from_pretrained("facebook/sam3_lite_text")
>>> processor = AutoProcessor.from_pretrained("facebook/sam3_lite_text")

>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/sam-car.png"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read())).convert("RGB")
>>> text = "car"
>>> inputs = processor(images=image, text=text, return_tensors="pt")

>>> # Get segmentation output
>>> outputs = model(**inputs)
>>> pred_masks = outputs.pred_masks
>>> pred_boxes = outputs.pred_boxes

Sam3LiteTextPreTrainedModel

class transformers.Sam3LiteTextPreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

参数

  • config (PreTrainedConfig) — 模型配置类,包含模型的所有参数。使用配置文件进行初始化时,不会加载与模型关联的权重,仅加载配置。请查看 from_pretrained() 方法以加载模型权重。

该模型继承自 PreTrainedModel。请查阅父类文档,了解该库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝头等)。

该模型也是 PyTorch torch.nn.Module 的子类。 请将其作为常规的 PyTorch Module 使用,有关通用用法和行为的所有事项,请参阅 PyTorch 文档。

forward

( *args**kwargs )

点分路径(例如 torch.float32)的模拟值:属性访问链和调用行为如同透传装饰器,repr 返回点分路径,将其用作基类时会替换为普通的 type 基类(PEP 560 __mro_entries__),因此真实的子类保留正常的元类,且 inspect.signature 读取的是它们真实的 __init__,而非模拟对象的。

Update on GitHub