🚀 I-JEPA模型(Huge,在IN1K上微调)
I-JEPA 是一种用于自监督学习的方法。从高层次来看,I-JEPA 可以根据同一图像其他部分的表示来预测该图像某一部分的表示:
- 不依赖于预先指定的、针对手工数据变换的不变性,因为这些不变性往往会对特定的下游任务产生偏差;
- 也无需模型填充像素级细节,因为这往往会导致学习到的表示在语义上缺乏意义。

🚀 快速开始
I-JEPA 是一种自监督学习方法,能够根据图像部分区域的表示预测其他区域的表示,避免了传统方法的一些弊端。以下是使用该模型进行图像特征提取的示例:
import requests
from PIL import Image
from torch.nn.functional import cosine_similarity
from transformers import AutoModel, AutoProcessor
url_1 = "http://images.cocodataset.org/val2017/000000039769.jpg"
url_2 = "http://images.cocodataset.org/val2017/000000219578.jpg"
image_1 = Image.open(requests.get(url_1, stream=True).raw)
image_2 = Image.open(requests.get(url_2, stream=True).raw)
model_id = "jmtzt/ijepa_vith16_1k"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModel.from_pretrained(model_id)
def infer(image):
inputs = processor(image, return_tensors="pt")
outputs = model(**inputs)
return outputs.last_hidden_state.mean(dim=1)
embed_1 = infer(image_1)
embed_2 = infer(image_2)
similarity = cosine_similarity(embed_1, embed_2)
print(similarity)
✨ 主要特性
- 自监督学习:I-JEPA 是一种自监督学习方法,不依赖于预先指定的不变性和像素级细节填充,避免了传统方法的一些局限性。
- 语义预测:模型的预测器能够在潜在空间中进行预测,捕捉图像的语义信息,而不是像素级细节。
- 特征提取:该模型可用于图像分类或特征提取,特定的检查点适用于特征提取任务。
📚 详细文档
工作原理
与具有像素解码器的生成方法不同,I-JEPA 有一个预测器,可在潜在空间中进行预测。I-JEPA 中的预测器可以看作是一个原始(且受限)的世界模型,能够从部分可观察的上下文中对静态图像中的空间不确定性进行建模。这个世界模型具有语义性,因为它预测的是图像中未观察区域的高级信息,而不是像素级细节。
我们训练了一个随机解码器,将 I-JEPA 预测的表示映射回像素空间,形成草图。该模型能够正确捕捉位置不确定性,并生成具有正确姿态的高级对象部分(例如,狗的头部、狼的前腿)。

预期用途和局限性
I-JEPA 可用于图像分类或特征提取。此特定检查点旨在用于特征提取。
BibTeX 引用和引用信息
如果您在工作中使用了 I-JEPA 或此代码,请引用:
@article{assran2023self,
title={Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture},
author={Assran, Mahmoud and Duval, Quentin and Misra, Ishan and Bojanowski, Piotr and Vincent, Pascal and Rabbat, Michael and LeCun, Yann and Ballas, Nicolas},
journal={arXiv preprint arXiv:2301.08243},
year={2023}
}
📄 许可证
本项目采用 cc-by-nc-4.0
许可证。
📦 数据集和库信息
属性 |
详情 |
数据集 |
ILSVRC/imagenet - 1k |
库名称 |
transformers |
许可证 |
cc-by-nc-4.0 |