File size: 1,020 Bytes
97fcc90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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)