huggingface 模型推理几个重要到类

pipeline

它可以让您方便地使用预训练的模型进行各种任务¹。当您用pipeline函数创建一个图像分割的pipeline时,它会自动加载和初始化 一个SegformerForSemanticSegmentation的实例并且封装了一些预处理和后处理的逻辑,例如将图像转换为张量,将输出转换为分割图等²。您可以直接用pipeline函数对图像或图像列表进行分割,而不需要关心模型的细节。

SegformerForSemanticSegmentation

SegformerForSemanticSegmentation是一个具体的模型类,它由一个分层的Transformer编码器和一个轻量级的全MLP解码器组成,可以实现高效的图像分割³。当您用SegformerForSemanticSegmentation.from_pretrained方法加载一个预训练的模型 时,它会返回一个 SegformerForSemanticSegmentation的实例 ,但是您需要自己处理输入和输出的数据格式,例如使用AutoFeatureExtractor来提取图像特征,使用torch.argmax来获取分割结果等。

AutoModel

AutoModel.from_pretrained是一个通用的方法,它可以根据给定的模型名称或路径,自动识别模型的类型 ,并返回一个相应的模型类的实例³。例如,如果给定的模型名称是"bert-base-chinese",那么这个方法会返回一个BertModel的实例,它是一个用于文本表示的模型。这个方法可以处理多种不同类型的模型,但是它不能处理特定任务的模型,例如图像分割或序列标注。

本人实验代码:

import cv2
import PIL.Image as Image
import numpy as np
from transformers import pipeline

model_dir = '/speed/speed/code/DECA/face_parsing_model/face-parsing'
image_path = "/speed/speed/code/DECA/TestSamples/examples/6.png"

pipe = pipeline("image-segmentation", model="jonathandinu/face-parsing")
img = Image.open(image_path)
# 加载图片
# img = cv2.imread(image_path)
# 预处理图片
# img = cv2.resize(img, (256, 256))
# img = img.astype(np.float32) / 255.0

# 使用模型分割图片
result = pipe(img)

# Load model directly
from transformers import AutoFeatureExtractor, SegformerForSemanticSegmentation
from transformers import AutoFeatureExtractor, AutoModel
model_dir = '/speed/speed/code/DECA/face_parsing_model/face-parsing'
image_path = "/speed/speed/code/DECA/TestSamples/examples/6.png"

# extractor = AutoFeatureExtractor.from_pretrained("jonathandinu/face-parsing")
# model = SegformerForSemanticSegmentation.from_pretrained("jonathandinu/face-parsing")
extractor = AutoFeatureExtractor.from_pretrained(model_dir)
model = SegformerForSemanticSegmentation.from_pretrained(model_dir)

img = Image.open(image_path)
# 加载图片
img = cv2.imread(image_path)
img = cv2.resize(img, (1024, 1024))

inputs = extractor(img, return_tensors="pt")
outputs = model(**inputs).logits
print('')
相关推荐
千天夜22 分钟前
激活函数解析:神经网络背后的“驱动力”
人工智能·深度学习·神经网络
大数据面试宝典23 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
封步宇AIGC28 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
m0_5236742130 分钟前
技术前沿:从强化学习到Prompt Engineering,业务流程管理的创新之路
人工智能·深度学习·目标检测·机器学习·语言模型·自然语言处理·数据挖掘
HappyAcmen39 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea
噜噜噜噜鲁先森1 小时前
看懂本文,入门神经网络Neural Network
人工智能
InheritGuo2 小时前
It’s All About Your Sketch: Democratising Sketch Control in Diffusion Models
人工智能·计算机视觉·sketch
weixin_307779132 小时前
证明存在常数c, C > 0,使得在一系列特定条件下,某个特定投资时刻出现的概率与天数的对数成反比
人工智能·算法·机器学习
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-3.4.1.6.A股宏观经济数据
人工智能·python·机器学习·数据挖掘
Jack黄从零学c++2 小时前
opencv(c++)图像的灰度转换
c++·人工智能·opencv