Utils

Models utils

def count_parameters(model):
    return sum(p.numel() for p in model.parameters() if p.requires_grad)

Data utils

def to_onehot(x, n_classes=14):
    assert isinstance(x, int) or isinstance(x, (torch.Tensor))
    x = x.long()
    if isinstance(x, int):
        c = torch.zeros(1, n_classes).long()
        c[0][x] = 1
    else:
        x = x.cpu()
        c = torch.LongTensor(x.size(0), n_classes)
        c.zero_()
        c.scatter_(1, x, 1) # dim, index, src value
    return c

Training utils

def time_since(since):
    now = time.time()
    s = now - since
    m = math.floor(s / 60)
    s -= m * 60
    return '{:02d}m {:02d}s'.format(int(m), int(s))
start = time.time()