mamba / util.py
flpelerin's picture
Update 2 files
b0e0141
import json
import math
import random
import torch
def GetDevice():
return torch.device("cuda" if torch.cuda.is_available() else "cpu")
def RandomCode():
code = '';
chars = '0123456789abcdef'
count = 8;
for i in range(0, count):
code += chars[math.floor(random.randrange(len(chars)))]
return code
def RoundNumber(number):
suffixes = ['', 'k', 'm', 'b']
if number < 1000:
return str(number)
magnitude = 0
while abs(number) >= 1000:
magnitude += 1
number /= 1000.0
return '{:.0f}{}'.format(number, suffixes[magnitude])
def GetNumParams(model):
size = sum(p.numel() for p in model.parameters())
rounded_size = RoundNumber(size)
return size, rounded_size
class Config:
def __init__(self, data):
for key, value in data.items():
if isinstance(value, dict):
setattr(self, key, Config(value))
else:
setattr(self, key, value)
class ConfigParser:
def __init__(self, path: str):
with open(path, 'r') as f:
json_dict = json.load(f)
#config = json.loads(json_str, object_hook=lambda x: SimpleNamespace(**x))
config = Config(json_dict)
self.config = config