File size: 1,594 Bytes
55a8cfa | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | ---
tags:
- image-feature-extraction
- cell representation
- histology
- medical imaging
- self-supervised learning
- vision transformer
- foundation model
license: mit
---
# Model card for LEMON
`LEMON` is an open-source foundation model for single-cell histology images. The model is a Vision Transformer (ViT-s/8) trained using self-supervised learning on a dataset of 10 million histology cell images sampled from 10,000 slides from TCGA.
`LEMON` can be used to extract robust features from single-cell histology images for various downstream applications, such as gene expression prediction or cell type classification.
## How to use it to extract features.
The code below can be used to run inference. `LEMON` expects images of size 40x40 that were extracted at 0.25 microns per pixel (40X).
```python
import torch
from pathlib import Path
from torchvision.transforms import ToPILImage
from model import prepare_transform, get_vit_feature_extractor
device = "cpu"
model_name = "vits8"
target_cell_size = 40
weight_path = Path("lemon.pth.tar")
stats_path = Path("mean_std.json")
# Model
transform = prepare_transform(stats_path, size=target_cell_size)
model = get_vit_feature_extractor(weight_path, model_name, img_size=target_cell_size)
model.eval()
model.to(device)
# Data
input = torch.rand(3, target_cell_size, target_cell_size)
input = ToPILImage()(input)
# Inference
with torch.autocast(device_type=device, dtype=torch.float16):
with torch.inference_mode():
features = model(transform(input).unsqueeze(0).to(device))
assert features.shape == (1, 384)
```
|