File size: 1,151 Bytes
e5eabef
 
 
 
 
 
 
 
 
 
7fa09ff
 
e5eabef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# config.py
import os
import torch
import torchvision.transforms as transforms

class Config:
    """Configuration class for the Jewelry Recommender System."""
    
    # Model settings
    VECTOR_DIMENSION = 1280
    INDEX_PATH = "models/jewelry_index.idx"
    METADATA_PATH = "models/jewelry_metadata.pkl"
    
    # Hardware settings
    DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    
    # Image processing settings
    IMAGE_SIZE = (640, 640)
    NORMALIZATION_MEAN = [0.485, 0.456, 0.406]
    NORMALIZATION_STD = [0.229, 0.224, 0.225]
    
    # Recommendation settings
    DEFAULT_NUM_RECOMMENDATIONS = 5
    MAX_RECOMMENDATIONS = 20
    
    @classmethod
    def get_image_transform(cls):
        """Returns the image transformation pipeline."""
        from PIL import ImageOps
        return transforms.Compose([
            transforms.Lambda(lambda img: ImageOps.exif_transpose(img)),
            transforms.Resize(cls.IMAGE_SIZE),
            transforms.ToTensor(),
            transforms.Normalize(
                mean=cls.NORMALIZATION_MEAN,
                std=cls.NORMALIZATION_STD
            )
        ])