Files
Fannovel16-ComfyUI-MotionDiff/motiondiff_modules/mGPT/models/utils/tools.py
T
2024-03-31 15:46:19 +07:00

38 lines
1.1 KiB
Python

import torch.nn as nn
def remove_padding(tensors, lengths):
return [tensor[:tensor_length] for tensor, tensor_length in zip(tensors, lengths)]
class AutoParams(nn.Module):
def __init__(self, **kargs):
try:
for param in self.needed_params:
if param in kargs:
setattr(self, param, kargs[param])
else:
raise ValueError(f"{param} is needed.")
except :
pass
try:
for param, default in self.optional_params.items():
if param in kargs and kargs[param] is not None:
setattr(self, param, kargs[param])
else:
setattr(self, param, default)
except :
pass
super().__init__()
# taken from joeynmt repo
def freeze_params(module: nn.Module) -> None:
"""
Freeze the parameters of this module,
i.e. do not update them during training
:param module: freeze parameters of this module
"""
for _, p in module.named_parameters():
p.requires_grad = False