Spaces:
Running on Zero
Running on Zero
Upload models/dinov2_encoder.py with huggingface_hub
Browse files- models/dinov2_encoder.py +2 -4
models/dinov2_encoder.py
CHANGED
|
@@ -60,11 +60,9 @@ class Dinov2Encoder(nn.Module):
|
|
| 60 |
"""Forward through HF DINOv2, collecting per-layer features + final norm output."""
|
| 61 |
features = {}
|
| 62 |
model = self.encoder
|
| 63 |
-
batch_size = x.shape[0]
|
| 64 |
|
| 65 |
-
# HF DINOv2:
|
| 66 |
embeddings = model.embeddings(x)
|
| 67 |
-
embeddings = model.layernorm_pre(embeddings)
|
| 68 |
|
| 69 |
# Forward through each encoder layer
|
| 70 |
for i, layer in enumerate(model.encoder.layer):
|
|
@@ -76,7 +74,7 @@ class Dinov2Encoder(nn.Module):
|
|
| 76 |
embeddings = outputs
|
| 77 |
features[f'layer_{i}'] = embeddings[:, 1:] # Remove CLS token
|
| 78 |
|
| 79 |
-
x_norm = model.
|
| 80 |
return features, x_norm[:, 1:]
|
| 81 |
|
| 82 |
def preprocess(self, lr: torch.Tensor) -> torch.Tensor:
|
|
|
|
| 60 |
"""Forward through HF DINOv2, collecting per-layer features + final norm output."""
|
| 61 |
features = {}
|
| 62 |
model = self.encoder
|
|
|
|
| 63 |
|
| 64 |
+
# HF DINOv2: embeddings (patch + CLS + pos) -> encoder layers -> norm
|
| 65 |
embeddings = model.embeddings(x)
|
|
|
|
| 66 |
|
| 67 |
# Forward through each encoder layer
|
| 68 |
for i, layer in enumerate(model.encoder.layer):
|
|
|
|
| 74 |
embeddings = outputs
|
| 75 |
features[f'layer_{i}'] = embeddings[:, 1:] # Remove CLS token
|
| 76 |
|
| 77 |
+
x_norm = model.norm(embeddings)
|
| 78 |
return features, x_norm[:, 1:]
|
| 79 |
|
| 80 |
def preprocess(self, lr: torch.Tensor) -> torch.Tensor:
|