🚀 transformers.js
transformers.js 是一個與 ONNX 權重兼容的庫,基於 apple/ml-mobileclip 項目,可用於零樣本圖像分類等任務,為圖像特徵提取等工作提供支持。
🚀 快速開始
安裝
若你還未安裝 Transformers.js JavaScript 庫,可以通過以下命令從 NPM 進行安裝:
npm i @huggingface/transformers
💻 使用示例
基礎用法
以下是一個使用 transformers.js 執行零樣本圖像分類的示例:
import {
AutoTokenizer,
CLIPTextModelWithProjection,
AutoProcessor,
CLIPVisionModelWithProjection,
RawImage,
dot,
softmax,
} from '@huggingface/transformers';
const model_id = 'Xenova/mobileclip_s2';
const tokenizer = await AutoTokenizer.from_pretrained(model_id);
const text_model = await CLIPTextModelWithProjection.from_pretrained(model_id);
const processor = await AutoProcessor.from_pretrained(model_id);
const vision_model = await CLIPVisionModelWithProjection.from_pretrained(model_id);
const texts = ['cats', 'dogs', 'birds'];
const text_inputs = tokenizer(texts, { padding: 'max_length', truncation: true });
const { text_embeds } = await text_model(text_inputs);
const normalized_text_embeds = text_embeds.normalize().tolist();
const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg';
const image = await RawImage.read(url);
const image_inputs = await processor(image);
const { image_embeds } = await vision_model(image_inputs);
const normalized_image_embeds = image_embeds.normalize().tolist();
const probabilities = normalized_image_embeds.map(
x => softmax(normalized_text_embeds.map(y => 100 * dot(x, y)))
);
console.log(probabilities);
📄 許可證
本項目採用 other
許可證。
屬性 |
詳情 |
模型類型 |
零樣本圖像分類 |
標籤 |
mobileclip、圖像特徵提取、特徵提取 |