AWS Trainium & Inferentia 文件

YOLOS

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

YOLOS

概述

YOLOS 模型由 Yuxin Fang、Bencheng Liao、Xinggang Wang、Jiemin Fang、Jiyang Qi、Rui Wu、Jianwei Niu、Wenyu Liu 在 You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection 中提出。YOLOS 受 DETR 啟發,提出僅利用普通的 視覺 Transformer (ViT) 進行目標檢測。結果表明,一個基於編碼器(encoder-only)的 Transformer 也能在 COCO 上達到 42 AP,與 DETR 和 Faster R-CNN 等更復雜的框架相似。

匯出到 Neuron

要將 🤗 Transformers 模型部署到 Neuron 裝置上,您首先需要編譯模型並將其匯出為序列化格式以進行推理。以下是兩種編譯模型的方法,您可以選擇最適合您需求的一種。這裡我們以 feature-extraction 為例。

選項 1: CLI

您可以使用 Optimum 命令列介面匯出模型,如下所示:

optimum-cli export neuron --model hustvl/yolos-tiny --task object-detection --batch_size 1 yolos_object_detection_neuronx/

執行 optimum-cli export neuron --help 以顯示所有命令列選項及其描述。

選項 2: Python API

from optimum.neuron import NeuronModelForObjectDetection
from transformers import AutoImageProcessor


preprocessor = AutoImageProcessor.from_pretrained("hustvl/yolos-tiny")
neuron_model = NeuronModelForObjectDetection.from_pretrained("hustvl/yolos-tiny", export=True, batch_size=1)

neuron_model.save_pretrained("yolos_object_detection_neuronx")
neuron_model.push_to_hub(
    "yolos_object_detection_neuronx", repository_id="optimum/yolos-tiny-neuronx-bs1"  # Replace with your HF Hub repo id
)

NeuronYolosForObjectDetection

class optimum.neuron.NeuronYolosForObjectDetection

< >

( model: ScriptModule config: PretrainedConfig model_save_dir: str | pathlib.Path | tempfile.TemporaryDirectory | None = None model_file_name: str | None = None preprocessors: list | None = None neuron_config: NeuronDefaultConfig | None = None **kwargs )

引數

  • config (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。使用配置檔案初始化並不會載入與模型關聯的權重,只加載配置。請檢視 optimum.neuron.modeling.NeuronTracedModel.from_pretrained 方法以載入模型權重。
  • model (torch.jit._script.ScriptModule) — torch.jit._script.ScriptModule 是包含由 neuron(x) 編譯器編譯的嵌入式 NEFF(Neuron 可執行檔案格式)的 TorchScript 模組。

Neuron 模型,頂部帶有目標檢測頭,用於 COCO 檢測等任務。

此模型繼承自 ~neuron.modeling.NeuronTracedModel。請檢視超類文件以瞭解庫為其所有模型實現的通用方法(例如下載或儲存)。

forward

< >

( pixel_values: Tensor **kwargs )

引數

  • pixel_values (torch.Tensor | None 型別,形狀為 (batch_size, num_channels, height, width),預設為 None) — 對應當前批次影像的畫素值。畫素值可以透過 AutoImageProcessor 從編碼影像中獲取。

NeuronYolosForObjectDetection 的前向傳播方法,重寫了 __call__ 特殊方法。僅接受編譯步驟中跟蹤的輸入。推理過程中提供的任何額外輸入都將被忽略。要包含額外輸入,請在指定這些輸入的情況下重新編譯模型。

示例

>>> import requests
>>> from PIL import Image
>>> from optimum.neuron import NeuronYolosForObjectDetection
>>> from transformers import AutoImageProcessor

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> preprocessor = AutoImageProcessor.from_pretrained("optimum/yolos-tiny-neuronx-bs1")
>>> model = NeuronYolosForObjectDetection.from_pretrained("optimum/yolos-tiny-neuronx-bs1")

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

>>> outputs = model(**inputs)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.9, target_sizes=target_sizes)[0]

© . This site is unofficial and not affiliated with Hugging Face, Inc.