Image Feature Extraction
Transformers
PyTorch
xmag
feature-extraction
pathology
histopathology
foundation-model
distillation
dinov2
custom_code
Instructions to use AI4PATH/XMAG with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use AI4PATH/XMAG with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-feature-extraction", model="AI4PATH/XMAG", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("AI4PATH/XMAG", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
Download modeling_xmag.py from AI4PATH/XMAG: direct link, hf CLI and curl.
- Browser
- Download file 1.04 kB
-
https://huggingface.co/AI4PATH/XMAG/resolve/main/modeling_xmag.py
- Command line
-
hf download hf://AI4PATH/XMAG/modeling_xmag.py
-
curl -L -o modeling_xmag.py https://huggingface.co/AI4PATH/XMAG/resolve/main/modeling_xmag.py
1.04 kB
| import torch | |
| from transformers import PreTrainedModel | |
| from .configuration_xmag import XMagConfig | |
| class XMagModel(PreTrainedModel): | |
| config_class = XMagConfig | |
| base_model_prefix = "model" | |
| def __init__(self, config): | |
| super().__init__(config) | |
| self.model = torch.hub.load("facebookresearch/dinov2", config.backbone_name) | |
| def forward(self, pixel_values): | |
| if pixel_values.ndim != 4: | |
| raise ValueError("pixel_values must have shape (B, 3, H, W).") | |
| _, channels, height, width = pixel_values.shape | |
| if channels != 3: | |
| raise ValueError("pixel_values must have 3 RGB channels.") | |
| if height != self.config.image_size or width != self.config.image_size: | |
| raise ValueError(f"pixel_values must be {self.config.image_size}x{self.config.image_size}.") | |
| outputs = self.model.forward_features(pixel_values) | |
| return { | |
| "cls_embedding": outputs["x_norm_clstoken"], | |
| "patch_embeddings": outputs["x_norm_patchtokens"], | |
| } | |