in tzrec/modules/activation.py [0:0]
def create_activation(act_str: str = "nn.ReLU", **kwargs: Any) -> Optional[nn.Module]:
"""Create activation module."""
act_str = act_str.strip()
act_module = None
if act_str == "Dice":
assert "hidden_size" in kwargs and "dim" in kwargs, (
"Dice activation method need hidden_size and dim params."
)
hidden_size = kwargs["hidden_size"]
dim = kwargs["dim"]
act_module = Dice(hidden_size, dim)
elif len(act_str) > 0:
act_strs = act_str.strip(")").split("(", 1)
act_class = load_by_path(act_strs[0])
if act_class is None:
logger.error(f"Unknown activation [{act_str}]")
else:
act_params = {}
if len(act_strs) > 1:
try:
act_params = {
kv.split("=")[0]: eval(kv.split("=")[1])
for kv in act_strs[1].split(",")
}
except Exception as e:
logger.error(f"Can not parse activation [{act_str}]")
raise e
act_module = act_class(**act_params)
return act_module