import torch
import torch.nn as nn

lambda_se = 1.0507009873554804934193349852946
alpha_se = 1.6732632423543772848170429916717

class Model(nn.Module):
    def __init__(self, scale: torch.Tensor, bias: torch.Tensor):
        super(Model, self).__init__()
        self.register_buffer("scale", scale)
        self.register_buffer("bias", bias)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        z = x * self.scale + self.bias
        pos = torch.clamp(z, min=0.0)
        neg = torch.expm1(torch.clamp(z, max=0.0))
        return torch.where(z > 0, pos, alpha_se * neg) * lambda_se

batch_size = 16
dim = 16384

def get_inputs():
    x = torch.randn(batch_size, dim)
    return [x]

def get_init_inputs():
    scale = torch.randn(dim)
    bias = torch.randn(dim)
    return [scale, bias]
