Sor0ush's picture
download
raw
4.65 kB
import os
import torch
import torchvision.datasets as datasets
template = ['a photo of a {}, a type of aircraft.']
class Caltech101:
def __init__(self,
preprocess,
location="../../DataSets/clip_fewshot",
batch_size=32,
num_workers=14,
use_val=False):
# Data loading code
location="../../DataSets/clip_fewshot"
dataset = datasets.Caltech101(
root=location, transform=preprocess)
self.train_dataset, self.test_dataset = self.split_dataset(dataset)
self.train_loader = torch.utils.data.DataLoader(
self.train_dataset,
shuffle=True,
batch_size=batch_size,
num_workers=num_workers,
)
if use_val:
self.val_dataset, self.test_dataset = torch.utils.data.random_split(self.test_dataset, [len(self.test_dataset) // 5, len(self.test_dataset) - len(self.test_dataset) // 5])
self.val_loader = torch.utils.data.DataLoader(
self.val_dataset,
batch_size=batch_size,
num_workers=num_workers
)
self.test_loader = torch.utils.data.DataLoader(
self.test_dataset,
batch_size=batch_size,
num_workers=num_workers
)
self.test_loader_shuffle = torch.utils.data.DataLoader(
self.test_dataset,
shuffle=True,
batch_size=batch_size,
num_workers=num_workers
)
self.classnames = [
"off-center face",
"centered face",
"leopard",
"motorbike",
"accordion",
"airplane",
"anchor",
"ant",
"barrel",
"bass",
"beaver",
"binocular",
"bonsai",
"brain",
"brontosaurus",
"buddha",
"butterfly",
"camera",
"cannon",
"side of a car",
"ceiling fan",
"cellphone",
"chair",
"chandelier",
"body of a cougar cat",
"face of a cougar cat",
"crab",
"crayfish",
"crocodile",
"head of a crocodile",
"cup",
"dalmatian",
"dollar bill",
"dolphin",
"dragonfly",
"electric guitar",
"elephant",
"emu",
"euphonium",
"ewer",
"ferry",
"flamingo",
"head of a flamingo",
"garfield",
"gerenuk",
"gramophone",
"grand piano",
"hawksbill",
"headphone",
"hedgehog",
"helicopter",
"ibis",
"inline skate",
"joshua tree",
"kangaroo",
"ketch",
"lamp",
"laptop",
"llama",
"lobster",
"lotus",
"mandolin",
"mayfly",
"menorah",
"metronome",
"minaret",
"nautilus",
"octopus",
"okapi",
"pagoda",
"panda",
"pigeon",
"pizza",
"platypus",
"pyramid",
"revolver",
"rhino",
"rooster",
"saxophone",
"schooner",
"scissors",
"scorpion",
"sea horse",
"snoopy (cartoon beagle)",
"soccer ball",
"stapler",
"starfish",
"stegosaurus",
"stop sign",
"strawberry",
"sunflower",
"tick",
"trilobite",
"umbrella",
"watch",
"water lilly",
"wheelchair",
"wild cat",
"windsor chair",
"wrench",
"yin and yang symbol",
]
self.class_to_idx = {v: k for k, v in enumerate(self.classnames)}
self.idx_to_class = {k: v for k, v in enumerate(self.classnames)}
def split_dataset(self, dataset, ratio=0.8):
train_size = int(ratio * len(dataset))
test_size = len(dataset) - train_size
train_dataset, test_dataset = torch.utils.data.random_split(
dataset,
[train_size, test_size],
generator=torch.Generator().manual_seed(42),
)
return train_dataset, test_dataset

Xet Storage Details

Size:
4.65 kB
·
Xet hash:
b306fd14f6093c509a7752faea28bbb543bcbca42a3798f9bbb6368d153d44d0

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.