🚀 Transformers.js
Transformers.js 是一個支持零樣本圖像分類的庫,它將蘋果的 ml-mobileclip 模型的 ONNX 權重進行適配,以兼容 Transformers.js,可用於圖像特徵提取等任務。
🚀 快速開始
安裝依賴
你可以使用以下命令從 NPM 安裝 Transformers.js JavaScript 庫:
npm i @huggingface/transformers
💻 使用示例
基礎用法
以下是一個執行零樣本圖像分類的示例代碼:
import {
AutoTokenizer,
CLIPTextModelWithProjection,
AutoProcessor,
CLIPVisionModelWithProjection,
RawImage,
dot,
softmax,
} from '@huggingface/transformers';
const model_id = 'Xenova/mobileclip_s0';
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 實現圖像特徵提取 |
訓練數據 |
未提及 |