yuto090612 commited on
Commit
324867a
·
verified ·
1 Parent(s): 58dbfa5

Upload src/model.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. src/model.py +32 -0
src/model.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """SAM model loading utilities."""
2
+
3
+ import logging
4
+
5
+ from transformers import SamModel, SamProcessor
6
+
7
+ logger = logging.getLogger(__name__)
8
+
9
+ MODEL_NAME = "facebook/sam-vit-base"
10
+
11
+
12
+ def load_model(device: str) -> tuple[SamModel, SamProcessor]:
13
+ """Load the SAM model and processor from HuggingFace.
14
+
15
+ Args:
16
+ device: Target device for the model (e.g., "cuda" or "cpu").
17
+
18
+ Returns:
19
+ A tuple of (SamModel, SamProcessor) loaded on the specified device.
20
+
21
+ Raises:
22
+ RuntimeError: If the model fails to load.
23
+ """
24
+ logger.info("Loading SAM model '%s' on device '%s'...", MODEL_NAME, device)
25
+
26
+ processor = SamProcessor.from_pretrained(MODEL_NAME)
27
+ model = SamModel.from_pretrained(MODEL_NAME)
28
+ model = model.to(device) # pyright: ignore[reportAttributeAccessIssue]
29
+ model.eval() # pyright: ignore[reportAttributeAccessIssue]
30
+
31
+ logger.info("SAM model loaded successfully.")
32
+ return model, processor # pyright: ignore[reportReturnType]