Transformers documentation

CLIPSeg

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

Mô hình này được công bố trên HF papers vào ngày 18-12-2021 và được đóng góp cho Hugging Face Transformers vào ngày 08-11-2022.

CLIPSeg

Tổng quan

Mô hình CLIPSeg được đề xuất trong Image Segmentation Using Text and Image Prompts bởi Timo Lüddecke và Alexander Ecker. CLIPSeg thêm một bộ giải mã tối thiểu lên trên mô hình CLIP đã đóng băng để phân đoạn ảnh zero-shot và one-shot.

Tóm tắt từ bài báo như sau:

Phân đoạn hình ảnh thường được giải quyết bằng cách huấn luyện một mô hình cho một tập hợp các lớp đối tượng cố định. Việc tích hợp thêm các lớp hoặc các truy vấn phức tạp hơn sau đó là tốn kém vì đòi hỏi phải huấn luyện lại mô hình trên một tập dữ liệu bao trùm các biểu đạt này. Ở đây, chúng tôi đề xuất một hệ thống có thể tạo ra các phân đoạn hình ảnh dựa trên các prompt tùy ý tại thời điểm kiểm tra. Một prompt có thể là văn bản hoặc hình ảnh. Cách tiếp cận này cho phép chúng tôi tạo ra một mô hình thống nhất (được huấn luyện một lần) cho ba tác vụ phân đoạn phổ biến, mỗi tác vụ đi kèm với những thách thức riêng biệt: phân đoạn biểu đạt tham chiếu, phân đoạn zero-shot và phân đoạn one-shot. Chúng tôi xây dựng dựa trên mô hình CLIP làm khung xương, sau đó mở rộng nó bằng một bộ giải mã dựa trên transformer cho phép dự đoán dày đặc. Sau khi huấn luyện trên một phiên bản mở rộng của tập dữ liệu PhraseCut, hệ thống của chúng tôi tạo ra một bản đồ phân đoạn nhị phân cho một hình ảnh dựa trên một prompt văn bản tự do hoặc dựa trên một hình ảnh bổ sung biểu đạt truy vấn. Chúng tôi phân tích chi tiết các biến thể khác nhau của các prompt dựa trên hình ảnh ở phần sau. Đầu vào lai mới này cho phép thích ứng động không chỉ với ba tác vụ phân đoạn được đề cập ở trên, mà còn với bất kỳ tác vụ phân đoạn nhị phân nào mà một truy vấn văn bản hoặc hình ảnh có thể được xây dựng. Cuối cùng, chúng tôi nhận thấy hệ thống của mình thích ứng tốt với các truy vấn tổng quát hóa liên quan đến khả năng tương tác (affordances) hoặc các thuộc tính

drawing CLIPSeg overview. Taken from the original paper.

Mô hình này được đóng góp bởi nielsr. Mã nguồn gốc có thể được tìm thấy tại đây.

Mẹo sử dụng

  • CLIPSegForImageSegmentation thêm một bộ giải mã phía trên CLIPSegModel. Bộ mô hình này giống hệt với CLIPModel.
  • CLIPSegForImageSegmentation có thể tạo ra phân đoạn hình ảnh dựa trên các prompt tùy ý tại thời điểm kiểm thử. Một prompt có thể là văn bản (được cung cấp cho mô hình dưới dạng input_ids) hoặc một hình ảnh (được cung cấp cho mô hình dưới dạng conditional_pixel_values). Người dùng cũng có thể cung cấp các embedding điều kiện tùy chỉnh (được cung cấp cho mô hình dưới dạng conditional_embeddings).

Tài nguyên

Danh sách các tài nguyên chính thức của Hugging Face và cộng đồng (được đánh dấu bằng 🌎) để giúp bạn bắt đầu với CLIPSeg. Nếu bạn quan tâm đến việc gửi tài nguyên để được đưa vào đây, hãy thoải mái mở một Pull Request và chúng tôi sẽ xem xét! Tài nguyên lý tưởng nên minh họa điều gì đó mới thay vì sao chép một tài nguyên hiện có.

Image Segmentation

CLIPSegConfig

lớp transformers.CLIPSegConfig

< >

( 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 = Nonetext_config: dict | transformers.models.clipseg.configuration_clipseg.CLIPSegTextConfig | None = Nonevision_config: dict | transformers.models.clipseg.configuration_clipseg.CLIPSegVisionConfig | None = Noneprojection_dim: int | None = 512logit_scale_init_value: float | int | None = 2.6592initializer_factor: float | None = 1.0extract_layers: list[int] | tuple[int, ...] = (3, 6, 9)reduce_dim: int = 64decoder_num_attention_heads: int = 4decoder_attention_dropout: float | int = 0.0decoder_hidden_act: str = 'quick_gelu'decoder_intermediate_size: int = 2048conditional_layer: int = 0use_complex_transposed_convolution: bool = False )

Tham số

  • text_config (Union[dict, ~models.clipseg.configuration_clipseg.CLIPSegTextConfig], tùy chọn) — Đối tượng cấu hình hoặc từ điển của bộ khung văn bản.
  • vision_config (Union[dict, ~models.clipseg.configuration_clipseg.CLIPSegVisionConfig], tùy chọn) — Đối tượng cấu hình hoặc từ điển của bộ khung thị giác.
  • projection_dim (int, tùy chọn, mặc định là 512) — Số chiều của các lớp chiếu văn bản và thị giác.
  • logit_scale_init_value (Union[float, int], tùy chọn, mặc định là 2.6592) — Giá trị ban đầu của tham số logit_scale.
  • initializer_factor (float, tùy chọn, mặc định là 1.0) — Hệ số để khởi tạo tất cả các ma trận trọng số (nên giữ ở mức 1, được sử dụng bên trong cho việc kiểm tra khởi tạo).
  • extract_layers (list[int], tuỳ chọn, mặc định là [3, 6, 9]) — Các lớp cần trích xuất khi truyền ảnh truy vấn qua bộ khung thị giác đóng băng của CLIP.
  • reduce_dim (int, tuỳ chọn, mặc định là 64) — Số chiều để giảm embedding thị giác của CLIP.
  • decoder_num_attention_heads (int, tùy chọn, mặc định là 4) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.
  • decoder_attention_dropout (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • decoder_hidden_act (str, tùy chọn, mặc định là quick_gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • decoder_intermediate_size (int, tùy chọn, mặc định là 2048) — Kích thước của các biểu diễn MLP.
  • conditional_layer (int, tuỳ chọn, mặc định là 0) — Lớp của bộ mã hóa Transformer mà các kích hoạt của nó sẽ được kết hợp với các nhúng điều kiện bằng FiLM (Feature-wise Linear Modulation). Nếu là 0, lớp cuối cùng sẽ được sử dụng.
  • use_complex_transposed_convolution (bool, tuỳ chọn, mặc định là False) — Có nên sử dụng phép convolution chuyển vị phức tạp hơn trong bộ giải mã, cho phép phân đoạn chi tiết hơn hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một CLIPSegModel. Nó được sử dụng để khởi tạo một mô hình Clipseg theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của CIDAS/clipseg-rd64

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import CLIPSegConfig, CLIPSegModel

>>> # Initializing a CLIPSegConfig with CIDAS/clipseg-rd64 style configuration
>>> configuration = CLIPSegConfig()

>>> # Initializing a CLIPSegModel (with random weights) from the CIDAS/clipseg-rd64 style configuration
>>> model = CLIPSegModel(configuration)

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

>>> # We can also initialize a CLIPSegConfig from a CLIPSegTextConfig and a CLIPSegVisionConfig

>>> # Initializing a CLIPSegText and CLIPSegVision configuration
>>> config_text = CLIPSegTextConfig()
>>> config_vision = CLIPSegVisionConfig()

>>> config = CLIPSegConfig(text_config=config_text, vision_config=config_vision)

CLIPSegTextConfig

lớp transformers.CLIPSegTextConfig

< >

( 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 = 2048num_hidden_layers: int = 12num_attention_heads: int = 8max_position_embeddings: int = 77hidden_act: str = 'quick_gelu'layer_norm_eps: float | None = 1e-05attention_dropout: int | float | None = 0.0initializer_range: float = 0.02initializer_factor: float | None = 1.0pad_token_id: int | None = 1bos_token_id: int | None = 49406eos_token_id: int | list[int] | None = 49407 )

Tham số

  • vocab_size (int, tuỳ chọn, mặc định là 49408) — Kích thước từ vựng của mô hình. Xác định số lượng token khác nhau có thể được biểu diễn bởi input_ids.
  • hidden_size (int, tùy chọn, mặc định là 512) — Kích thước của các biểu diễn ẩn.
  • intermediate_size (int, tùy chọn, mặc định là 2048) — Kích thước của các biểu diễn MLP.
  • num_hidden_layers (int, tùy chọn, mặc định là 12) — Số lượng lớp ẩn trong bộ giải mã Transformer.
  • num_attention_heads (int, tùy chọn, mặc định là 8) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer.
  • max_position_embeddings (int, tùy chọn, mặc định là 77) — Chiều dài chuỗi tối đa mà mô hình này có thể được sử dụng.
  • hidden_act (str, tùy chọn, mặc định là quick_gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-05) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • attention_dropout (Union[int, float], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • initializer_factor (float, tùy chọn, mặc định là 1.0) — Hệ số để khởi tạo tất cả các ma trận trọng số (nên giữ ở mức 1, được sử dụng bên trong cho việc kiểm tra khởi tạo).
  • pad_token_id (int, tùy chọn, mặc định là 1) — Token id được sử dụng để đệm (padding) trong từ vựng.
  • bos_token_id (int, tùy chọn, mặc định là 49406) — Token id được sử dụng cho beginning-of-stream trong bảng từ vựng.
  • eos_token_id (Union[int, list[int]], tùy chọn, mặc định là 49407) — Token id được sử dụng cho end-of-stream trong bảng từ vựng.

Đây là lớp cấu hình để lưu trữ cấu hình của một CLIPSegModel. Nó được sử dụng để khởi tạo một mô hình Clipseg theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của CIDAS/clipseg-rd64

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import CLIPSegTextConfig, CLIPSegTextModel

>>> # Initializing a CLIPSegTextConfig with CIDAS/clipseg-rd64 style configuration
>>> configuration = CLIPSegTextConfig()

>>> # Initializing a CLIPSegTextModel (with random weights) from the CIDAS/clipseg-rd64 style configuration
>>> model = CLIPSegTextModel(configuration)

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

CLIPSegVisionConfig

lớp transformers.CLIPSegVisionConfig

< >

( 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 = 768intermediate_size: int = 3072num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int | list[int] | tuple[int, int] | None = 224patch_size: int | list[int] | tuple[int, int] | None = 32hidden_act: str = 'quick_gelu'layer_norm_eps: float = 1e-05attention_dropout: int | float | None = 0.0initializer_range: float = 0.02initializer_factor: float = 1.0 )

Tham số

  • hidden_size (int, tùy chọn, mặc định là 768) — Kích thước của các biểu diễn ẩn.
  • intermediate_size (int, tùy chọn, mặc định là 3072) — Kích thước của các biểu diễn MLP.
  • num_hidden_layers (int, tùy chọn, mặc định là 12) — Số lượng lớp ẩn trong bộ giải mã Transformer.
  • num_attention_heads (int, tùy chọn, mặc định là 12) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer.
  • num_channels (int, tùy chọn, mặc định là 3) — Số lượng kênh đầu vào.
  • image_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 224) — Kích thước (độ phân giải) của mỗi hình ảnh.
  • patch_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 32) — Kích thước (độ phân giải) của mỗi patch.
  • hidden_act (str, tùy chọn, mặc định là quick_gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-05) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • attention_dropout (Union[int, float], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • initializer_factor (float, tùy chọn, mặc định là 1.0) — Hệ số để khởi tạo tất cả các ma trận trọng số (nên giữ ở mức 1, được sử dụng bên trong cho việc kiểm tra khởi tạo).

Đây là lớp cấu hình để lưu trữ cấu hình của một CLIPSegModel. Nó được sử dụng để khởi tạo một mô hình Clipseg theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của CIDAS/clipseg-rd64

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import CLIPSegVisionConfig, CLIPSegVisionModel

>>> # Initializing a CLIPSegVisionConfig with CIDAS/clipseg-rd64 style configuration
>>> configuration = CLIPSegVisionConfig()

>>> # Initializing a CLIPSegVisionModel (with random weights) from the CIDAS/clipseg-rd64 style configuration
>>> model = CLIPSegVisionModel(configuration)

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

CLIPSegProcessor

lớp transformers.CLIPSegProcessor

< >

( image_processor = Nonetokenizer = None**kwargs )

Tham số

  • image_processor (ViTImageProcessor) — Bộ xử lý ảnh là một đầu vào bắt buộc.
  • tokenizer (CLIPTokenizer) — Tokenizer là đầu vào bắt buộc.

Tạo một CLIPSegProcessor đóng gói một bộ xử lý ảnh và một bộ phân từ thành một bộ xử lý duy nhất.

CLIPSegProcessor cung cấp đầy đủ các chức năng của ViTImageProcessor và CLIPTokenizer. Xem ~ViTImageProcessor và ~CLIPTokenizer để biết thêm thông tin.

__call__

< >

( text = Noneimages = Nonevisual_prompt = None**kwargs ) → BatchEncoding

Tham số

  • text (`) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, set is_split_into_words=True` to avoid ambiguity with batched inputs.
  • images (`) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, set do_rescale=False`.
  • visual_prompt (PIL.Image.Image, np.ndarray, torch.Tensor, list[PIL.Image.Image], list[np.ndarray], list[torch.Tensor]) — Hình ảnh visual prompt hoặc lô hình ảnh cần được chuẩn bị. Mỗi hình ảnh visual prompt có thể là một hình ảnh PIL, mảng NumPy hoặc tensor PyTorch. Trong trường hợp là mảng NumPy/tensor PyTorch, mỗi hình ảnh nên có dạng (C, H, W), trong đó C là số kênh, H và W là chiều cao và chiều rộng của hình ảnh.
  • return_tensors (str hoặc TensorType, tùy chọn) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Các giá trị chấp nhận được là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng np.ndarray của NumPy.

Trả về

BatchEncoding

Một BatchEncoding với các trường sau:

  • input_ids — Danh sách các token id để đưa vào mô hình. Được trả về khi text không phải None.
  • attention_mask — Danh sách các chỉ số chỉ định những token nào nên được mô hình chú ý đến (khi return_attention_mask=True hoặc nếu “attention_mask” nằm trong self.model_input_names và nếu text không phải là None).
  • pixel_values — Giá trị pixel để đưa vào mô hình. Được trả về khi images không phải None.

CLIPSegModel

lớp transformers.CLIPSegModel

< >

( config: CLIPSegConfig )

Tham số

  • config (CLIPSegConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình Clipseg cơ bản, xuất ra các hidden-states thô mà không có bất kỳ head cụ thể nào ở phía trên.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonereturn_loss: bool | None = Noneinterpolate_pos_encoding: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CLIPSegOutput or tuple(torch.Tensor)

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • pixel_values (torch.Tensor có hình dạng (batch_size, num_channels, image_size, image_size), tùy chọn) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng ViTImageProcessor. Xem ViTImageProcessor.call() để biết chi tiết (CLIPSegProcessor sử dụng ViTImageProcessor để xử lý hình ảnh).
  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

  • return_loss (bool, tùy chọn) — Có trả về tổn thất tương phản hay không.
  • interpolate_pos_encoding (bool, tùy chọn, mặc định là True) — Có nội suy các mã vị trí được huấn luyện trước hay không.

Trả về

CLIPSegOutput hoặc tuple(torch.Tensor)

Một CLIPSegOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (CLIPSegConfig) và đầu vào.

Phương thức forward của CLIPSegModel ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có shape (1,), tuỳ chọn, được trả về khi return_loss là True) — Mất tương phản cho độ tương đồng giữa ảnh và văn bản.
  • logits_per_image (torch.Tensor có hình dạng (image_batch_size, text_batch_size)) — Điểm tích vô hướng có tỷ lệ giữa image_embeds và text_embeds. Đây đại diện cho điểm độ tương tự giữa ảnh và văn bản.
  • logits_per_text (torch.Tensor có hình dạng (text_batch_size, image_batch_size)) — Điểm tích vô hướng có trọng số giữa text_embeds và image_embeds. Đây là điểm tương đồng giữa văn bản và hình ảnh.
  • text_embeds (torch.Tensor có hình dạng (batch_size, output_dim) — Các vector nhúng văn bản thu được bằng cách áp dụng lớp chiếu lên đầu ra đã gộp của CLIPSegTextModel.
  • image_embeds (torch.Tensor có hình dạng (batch_size, output_dim) — Các embedding hình ảnh thu được bằng cách áp dụng lớp chiếu lên đầu ra đã pool của CLIPSegVisionModel.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling, tùy chọn) — Đầu ra của CLIPSegTextModel.
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling, tùy chọn) — Đầu ra của CLIPSegVisionModel.

Ví dụ:

>>> import torch
>>> from transformers import AutoProcessor, CLIPSegModel
>>> from transformers.image_utils import load_image

>>> processor = AutoProcessor.from_pretrained("CIDAS/clipseg-rd64-refined")
>>> model = CLIPSegModel.from_pretrained("CIDAS/clipseg-rd64-refined")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(
...     text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True
... )

>>> with torch.inference_mode():
...     outputs = model(**inputs)
>>> logits_per_image = outputs.logits_per_image  # this is the image-text similarity score
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities

get_text_features

< >

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

Tham số

  • input_ids (torch.Tensor có dạng (batch_size, sequence_length)) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Token padding sẽ bị bỏ qua theo mặc định.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

Trả về

BaseModelOutputWithPooling hoặc tuple(torch.Tensor)

Một BaseModelOutputWithPooling hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (CLIPSegConfig) và đầu vào.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

  • pooler_output (torch.Tensor có hình dạng (batch_size, hidden_size)) — Trạng thái ẩn của lớp cuối cùng của token đầu tiên trong chuỗi (token phân loại) sau khi được xử lý thêm qua các lớp được sử dụng cho tác vụ tiền huấn luyện bổ trợ. Ví dụ, đối với các mô hình thuộc họ BERT, giá trị này trả về token phân loại sau khi được xử lý qua một lớp tuyến tính và một hàm kích hoạt tanh. Trọng số của lớp tuyến tính được huấn luyện từ mục tiêu dự đoán câu tiếp theo (phân loại) trong quá trình tiền huấn luyện.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

Ví dụ:

>>> import torch
>>> from transformers import AutoTokenizer, CLIPSegModel

>>> tokenizer = AutoTokenizer.from_pretrained("CIDAS/clipseg-rd64-refined")
>>> model = CLIPSegModel.from_pretrained("CIDAS/clipseg-rd64-refined")

>>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt")
>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)

get_image_features

< >

( pixel_values: Tensorinterpolate_pos_encoding: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Tham số

  • pixel_values (torch.Tensor có hình dạng (batch_size, num_channels, image_size, image_size)) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng ViTImageProcessor. Xem ViTImageProcessor.call() để biết chi tiết (CLIPSegProcessor sử dụng ViTImageProcessor để xử lý hình ảnh).
  • interpolate_pos_encoding (bool, tùy chọn, mặc định là True) — Có nội suy các mã vị trí được huấn luyện trước hay không.

Trả về

BaseModelOutputWithPooling hoặc tuple(torch.Tensor)

Một BaseModelOutputWithPooling hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (CLIPSegConfig) và đầu vào.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

  • pooler_output (torch.Tensor có hình dạng (batch_size, hidden_size)) — Trạng thái ẩn của lớp cuối cùng của token đầu tiên trong chuỗi (token phân loại) sau khi được xử lý thêm qua các lớp được sử dụng cho tác vụ tiền huấn luyện bổ trợ. Ví dụ, đối với các mô hình thuộc họ BERT, giá trị này trả về token phân loại sau khi được xử lý qua một lớp tuyến tính và một hàm kích hoạt tanh. Trọng số của lớp tuyến tính được huấn luyện từ mục tiêu dự đoán câu tiếp theo (phân loại) trong quá trình tiền huấn luyện.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

Ví dụ:

>>> import torch
>>> from transformers import AutoProcessor, CLIPSegModel
>>> from transformers.image_utils import load_image

>>> processor = AutoProcessor.from_pretrained("CIDAS/clipseg-rd64-refined")
>>> model = CLIPSegModel.from_pretrained("CIDAS/clipseg-rd64-refined")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")

>>> with torch.inference_mode():
...     image_features = model.get_image_features(**inputs)

CLIPSegTextModel

lớp transformers.CLIPSegTextModel

< >

( config: CLIPSegTextConfig )

Tham số

  • config (CLIPSegTextConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình văn bản từ CLIPSEG không có bất kỳ đầu (head) hay phép chiếu (projection) nào ở phía trên.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

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

Tham số

  • input_ids (torch.Tensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

Trả về

BaseModelOutputWithPooling hoặc tuple(torch.Tensor)

Một BaseModelOutputWithPooling hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (CLIPSegConfig) và đầu vào.

Phương thức forward của CLIPSegTextModel ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

  • pooler_output (torch.Tensor có hình dạng (batch_size, hidden_size)) — Trạng thái ẩn của lớp cuối cùng của token đầu tiên trong chuỗi (token phân loại) sau khi được xử lý thêm qua các lớp được sử dụng cho tác vụ tiền huấn luyện bổ trợ. Ví dụ, đối với các mô hình thuộc họ BERT, giá trị này trả về token phân loại sau khi được xử lý qua một lớp tuyến tính và một hàm kích hoạt tanh. Trọng số của lớp tuyến tính được huấn luyện từ mục tiêu dự đoán câu tiếp theo (phân loại) trong quá trình tiền huấn luyện.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

Ví dụ:

>>> from transformers import AutoTokenizer, CLIPSegTextModel

>>> tokenizer = AutoTokenizer.from_pretrained("CIDAS/clipseg-rd64-refined")
>>> model = CLIPSegTextModel.from_pretrained("CIDAS/clipseg-rd64-refined")

>>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled (EOS token) states

CLIPSegVisionModel

lớp transformers.CLIPSegVisionModel

< >

( config: CLIPSegVisionConfig )

Tham số

  • config (CLIPSegVisionConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình thị giác từ CLIPSEG không có đầu (head) hay phép chiếu (projection) nào ở phía trên.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( pixel_values: typing.Optional[torch.Tensor]interpolate_pos_encoding: bool | None = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Tham số

  • pixel_values (torch.Tensor có hình dạng (batch_size, num_channels, image_size, image_size), tùy chọn) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng ViTImageProcessor. Xem ViTImageProcessor.call() để biết chi tiết (CLIPSegProcessor sử dụng ViTImageProcessor để xử lý hình ảnh).
  • interpolate_pos_encoding (bool, tùy chọn, mặc định là True) — Có nội suy các mã vị trí được huấn luyện trước hay không.

Trả về

BaseModelOutputWithPooling hoặc tuple(torch.Tensor)

Một BaseModelOutputWithPooling hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (CLIPSegConfig) và đầu vào.

Phương thức forward của CLIPSegVisionModel ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

  • pooler_output (torch.Tensor có hình dạng (batch_size, hidden_size)) — Trạng thái ẩn của lớp cuối cùng của token đầu tiên trong chuỗi (token phân loại) sau khi được xử lý thêm qua các lớp được sử dụng cho tác vụ tiền huấn luyện bổ trợ. Ví dụ, đối với các mô hình thuộc họ BERT, giá trị này trả về token phân loại sau khi được xử lý qua một lớp tuyến tính và một hàm kích hoạt tanh. Trọng số của lớp tuyến tính được huấn luyện từ mục tiêu dự đoán câu tiếp theo (phân loại) trong quá trình tiền huấn luyện.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

Ví dụ:

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

>>> processor = AutoProcessor.from_pretrained("CIDAS/clipseg-rd64-refined")
>>> model = CLIPSegVisionModel.from_pretrained("CIDAS/clipseg-rd64-refined")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled CLS states

CLIPSegForImageSegmentation

lớp transformers.CLIPSegForImageSegmentation

< >

( config: CLIPSegConfig )

Tham số

  • config (CLIPSegConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình CLIPSeg với bộ giải mã dựa trên Transformer ở phía trên cho phân đoạn ảnh zero-shot và one-shot.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneconditional_pixel_values: typing.Optional[torch.Tensor] = Noneconditional_embeddings: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = True**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CLIPSegOutput or tuple(torch.Tensor)

Tham số

  • input_ids (torch.Tensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • pixel_values (torch.Tensor có hình dạng (batch_size, num_channels, image_size, image_size), tùy chọn) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng ViTImageProcessor. Xem ViTImageProcessor.call() để biết chi tiết (CLIPSegProcessor sử dụng ViTImageProcessor để xử lý hình ảnh).
  • conditional_pixel_values (torch.Tensor, tùy chọn) — Giá trị pixel của các hình ảnh điều kiện.
  • conditional_embeddings (torch.Tensor có hình dạng (batch_size, config.projection_dim), tùy chọn) — Các embedding điều kiện cho các ảnh truy vấn. Nếu được cung cấp, mô hình sẽ sử dụng chúng thay vì tính toán embedding từ conditional_pixel_values.
  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

  • labels (torch.Tensor có shape (batch_size, height, width), tùy chọn) — Mặt nạ phân đoạn (segmentation mask) đúng (ground truth), có giá trị trong [0, 1] và cùng kích thước không gian với logits. Một tổn thất entropy chéo nhị phân (binary cross-entropy loss) được tính giữa các logits dự đoán và các mặt nạ này.
  • interpolate_pos_encoding (bool, tùy chọn, mặc định là True) — Có nội suy các mã vị trí được huấn luyện trước hay không.

Trả về

CLIPSegOutput hoặc tuple(torch.Tensor)

Một CLIPSegOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (CLIPSegConfig) và đầu vào.

Phương thức forward của CLIPSegForImageSegmentation ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có shape (1,), tuỳ chọn, được trả về khi return_loss là True) — Mất tương phản cho độ tương đồng giữa ảnh và văn bản.
  • logits_per_image (torch.Tensor có hình dạng (image_batch_size, text_batch_size)) — Điểm tích vô hướng có tỷ lệ giữa image_embeds và text_embeds. Đây đại diện cho điểm độ tương tự giữa ảnh và văn bản.
  • logits_per_text (torch.Tensor có hình dạng (text_batch_size, image_batch_size)) — Điểm tích vô hướng có trọng số giữa text_embeds và image_embeds. Đây là điểm tương đồng giữa văn bản và hình ảnh.
  • text_embeds (torch.Tensor có hình dạng (batch_size, output_dim) — Các vector nhúng văn bản thu được bằng cách áp dụng lớp chiếu lên đầu ra đã gộp của CLIPSegTextModel.
  • image_embeds (torch.Tensor có hình dạng (batch_size, output_dim) — Các embedding hình ảnh thu được bằng cách áp dụng lớp chiếu lên đầu ra đã pool của CLIPSegVisionModel.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling, tùy chọn) — Đầu ra của CLIPSegTextModel.
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling, tùy chọn) — Đầu ra của CLIPSegVisionModel.

Ví dụ:

>>> import torch
>>> from transformers import AutoProcessor, CLIPSegForImageSegmentation
>>> from transformers.image_utils import load_image

>>> processor = AutoProcessor.from_pretrained("CIDAS/clipseg-rd64-refined")
>>> model = CLIPSegForImageSegmentation.from_pretrained("CIDAS/clipseg-rd64-refined")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> texts = ["a cat", "a remote", "a blanket"]
>>> inputs = processor(text=texts, images=[image] * len(texts), padding=True, return_tensors="pt")

>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> logits = outputs.logits
>>> print(logits.shape)
torch.Size([3, 352, 352])
Update on GitHub