Optimum 文档

Ryzen 推理管道

您正在查看 main 版本,需要从源代码安装. 如果您想要定期使用 pip 安装,请查看最新的稳定版本 (v1.23.1).
Hugging Face's logo
加入 Hugging Face 社区

并获取增强型文档体验

开始使用

Ryzen 推理管道

管道 是一个使用模型进行推理的简单易用方法。这些管道是抽象了库中大多数复杂代码的对象,提供了一个专门用于多个任务的简单 API。

当前支持的任务是

管道抽象

管道抽象是针对特定任务的所有可用管道的包装器。pipeline() 函数会自动加载一个能够执行您任务推理的默认模型和分词器/特征提取器。

  1. 通过指定推理任务开始创建管道
>>> from optimum.amd.ryzenai import pipeline

>>> detector = pipeline("object-detection")
  1. 将您的输入文本/图像传递给 ~pipelines.pipeline 函数
>>> import requests
>>> from PIL import Image

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

>>> detector(image)
[   {   'box': {'xmax': 325, 'xmin': 2, 'ymax': 465, 'ymin': 50},
        'label': 15.0,
        'score': 0.7081549763679504},
    {   'box': {'xmax': 630, 'xmin': 347, 'ymax': 381, 'ymin': 16},
        'label': 15.0,
        'score': 0.6494212746620178},
    {   'box': {'xmax': 369, 'xmin': 335, 'ymax': 187, 'ymin': 76},
        'label': 65.0,
        'score': 0.6064183115959167},
    {   'box': {'xmax': 645, 'xmin': 2, 'ymax': 475, 'ymin': 4},
        'label': 57.0,
        'score': 0.599224865436554},
    {   'box': {'xmax': 174, 'xmin': 40, 'ymax': 116, 'ymin': 73},
        'label': 65.0,
        'score': 0.408765971660614}]

使用 Hugging Face Hub 上的 RyzenAI 模型进行推理

pipeline() 函数可以从 Hugging Face Hub 加载 Ryzen AI 支持的模型。选择合适的模型后,您可以通过指定模型存储库创建 pipeline()

>>> import requests
>>> from PIL import Image

>>> from optimum.amd.ryzenai import pipeline

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

>>> # Hugging Face hub model-id with the quantized ONNX model
>>> model_id = "mohitsha/timm-resnet18-onnx-quantized-ryzen"

>>> pipe = pipeline("image-classification", model=model_id)
>>> print(pipe(image))

使用 RyzenModelForXXX 类

也可以使用 RyzenModelForXXX 类加载模型。例如,以下是如何加载 ~ryzenai.RyzenModelForImageClassification 类以进行图像分类

>>> import requests
>>> from PIL import Image

>>> from optimum.amd.ryzenai import RyzenAIModelForImageClassification
>>> from optimum.amd.ryzenai import pipeline


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

>>> # Hugging Face hub model-id with the quantized ONNX model
>>> model_id = "mohitsha/timm-resnet18-onnx-quantized-ryzen"
>>> model = RyzenAIModelForImageClassification.from_pretrained(model_id)

>>> pipe = pipeline("image-classification", model=model)
>>> print(pipe(image))

使用 model_type 参数

对于某些模型,除了 model_id 之外,还需要提供 model_type 和/或 image_preprocessor 来进行推理。例如,以下是如何使用 yolox 进行推理

>>> import requests
>>> from PIL import Image

>>> from optimum.amd.ryzenai import pipeline

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

>>> model_id = "amd/yolox-s"

>>> pipe = pipeline("object-detection", model=model_id, model_type="yolox")
>>> print(pipe(image))
< > 在 GitHub 上更新