File size: 583 Bytes
278b5e7 | 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 | """Shared utilities."""
import random
import numpy as np
import torch
def set_seed(seed: int):
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(seed)
def count_parameters(model: torch.nn.Module) -> int:
return sum(p.numel() for p in model.parameters() if p.requires_grad)
def grad_norm(model: torch.nn.Module) -> float:
total = 0.0
for p in model.parameters():
if p.grad is not None:
total += p.grad.data.norm(2).item() ** 2
return total ** 0.5
|