🚀 I-JEPA模型(Giant,在IN22K上微調)
I-JEPA 是一種自監督學習方法。總體而言,I-JEPA 從同一圖像其他部分的表示中預測該圖像部分的表示:
- 不依賴於針對手工數據變換預先指定的不變性,這種不變性往往會對特定的下游任務產生偏差;
- 並且不要求模型填充像素級細節,因為這往往會導致學習到的表示在語義上的意義較小。

✨ 主要特性
工作原理
與具有像素解碼器的生成方法不同,I-JEPA 有一個在潛在空間中進行預測的預測器。
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_vitg16_22k"
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)
📚 詳細文檔
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
許可證。
📦 模型信息
屬性 |
詳情 |
數據集 |
timm/imagenet-22k-wds |
庫名稱 |
transformers |
許可證 |
cc-by-nc-4.0 |