test quantized model
Browse files- predict.py +15 -3
predict.py
CHANGED
@@ -8,6 +8,7 @@ import json
|
|
8 |
import os
|
9 |
import random
|
10 |
from torchvision import transforms
|
|
|
11 |
|
12 |
# Load labels
|
13 |
with open("labels.json", "r") as f:
|
@@ -36,14 +37,25 @@ class SwinCustom(nn.Module):
|
|
36 |
outputs = self.model(images)
|
37 |
return outputs.logits
|
38 |
|
39 |
-
|
|
|
40 |
print("Model path:", model_path)
|
|
|
|
|
41 |
model = SwinCustom(model_name=MODEL_NAME, num_classes=40)
|
|
|
|
|
|
|
|
|
|
|
42 |
state_dict = torch.load(model_path, map_location="cpu")
|
43 |
if "model_state_dict" in state_dict:
|
44 |
state_dict = state_dict["model_state_dict"]
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
47 |
|
48 |
# Preprocessing
|
49 |
transform = transforms.Compose([
|
|
|
8 |
import os
|
9 |
import random
|
10 |
from torchvision import transforms
|
11 |
+
from torch.quantization import quantize_dynamic
|
12 |
|
13 |
# Load labels
|
14 |
with open("labels.json", "r") as f:
|
|
|
37 |
outputs = self.model(images)
|
38 |
return outputs.logits
|
39 |
|
40 |
+
# Download quantized model weights
|
41 |
+
model_path = hf_hub_download(repo_id="Noha90/AML_16", filename="swin_large_quantised.pth")
|
42 |
print("Model path:", model_path)
|
43 |
+
|
44 |
+
# Build the model
|
45 |
model = SwinCustom(model_name=MODEL_NAME, num_classes=40)
|
46 |
+
|
47 |
+
# Quantize the model
|
48 |
+
quantized_model = quantize_dynamic(model, {nn.Linear}, dtype=torch.qint8)
|
49 |
+
|
50 |
+
# Load the quantized state dict
|
51 |
state_dict = torch.load(model_path, map_location="cpu")
|
52 |
if "model_state_dict" in state_dict:
|
53 |
state_dict = state_dict["model_state_dict"]
|
54 |
+
quantized_model.load_state_dict(state_dict, strict=False)
|
55 |
+
quantized_model.eval()
|
56 |
+
|
57 |
+
# Use quantized_model
|
58 |
+
model = quantized_model
|
59 |
|
60 |
# Preprocessing
|
61 |
transform = transforms.Compose([
|