JAMM032's picture
Upload github repo files
97fcc90 verified
import datasets
import random
import torchvision.transforms.v2.functional as functional
from collections import Counter
def rotate90(image):
"""Rotate the image by a random multiple of 90 degrees"""
angle = 90 * random.randint(1,3)
return functional.rotate(image, angle=angle)
def calc_class_dist(dataset: datasets.Dataset) -> list[float]:
"""
Return percentage of total examples, done per class.
"""
# extract classes only
labels = dataset["label"]
counts = Counter(labels)
total_size = sum(counts.values())
percents = [100 * counts.get(i, 0) / total_size for i in range(max(labels)+1)]
return percents
def int_to_string(dataset: datasets.Dataset, int_label: int) -> str:
"""
Converts integer labels to their string counterpart.
"""
if not (0 <= int_label <= 38):
raise ValueError(f"Given label value, {int_label}, is out of range.")
return dataset.features['label'].int2str(int_label)