Spaces:
Sleeping
Sleeping
| from datasets import load_dataset | |
| from transformers import ViTImageProcessor | |
| from src.config import model_name, dataset_name | |
| from torchvision.transforms import ( | |
| Compose, RandomResizedCrop, RandomHorizontalFlip, | |
| ToTensor, Normalize, Resize, CenterCrop, | |
| RandomRotation, ColorJitter | |
| ) | |
| def make_dataset(): | |
| ds = load_dataset("maurice-fp/stanford-dogs") | |
| processor = ViTImageProcessor.from_pretrained(model_name) | |
| normalize = Normalize(mean=processor.image_mean, std=processor.image_std) | |
| # 학습용 transform 정의 (데이터 증강) | |
| _train_transforms = Compose([ | |
| RandomResizedCrop(224, scale=(0.5, 1.0)), # 이미지를 랜덤하게 자르고 224로 맞춤 | |
| RandomHorizontalFlip(), # 50% 확률로 좌우 반전 | |
| RandomRotation(degrees=15), # 고개 기울임 | |
| ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2), # 조명/털색 | |
| ToTensor(), | |
| normalize, | |
| ]) | |
| # 검증용 transform 정의 (증강 X) | |
| _val_transforms = Compose([ | |
| Resize(256), | |
| CenterCrop(224), | |
| ToTensor(), | |
| normalize, | |
| ]) | |
| def train_transforms(examples): | |
| examples['pixel_values'] = [ | |
| _train_transforms(image.convert("RGB")) for image in examples['image'] | |
| ] | |
| return examples | |
| def val_transforms(examples): | |
| examples['pixel_values'] = [ | |
| _val_transforms(image.convert("RGB")) for image in examples['image'] | |
| ] | |
| return examples | |
| ds['train'].set_transform(train_transforms) | |
| ds['test'].set_transform(val_transforms) | |
| train_ds = ds['train'] | |
| val_ds = ds['test'] | |
| labels = ds['train'].features['label'].names | |
| return train_ds, val_ds, labels, processor |