🚀 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 实现图像特征提取 |
训练数据 |
未提及 |