import torch
import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
    def __init__(self, alpha: torch.Tensor, beta: torch.Tensor, p: torch.Tensor):
        super(Model, self).__init__()
        self.register_buffer("alpha", alpha)
        self.register_buffer("beta", beta)
        self.register_buffer("p", p)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        g = torch.sigmoid(self.alpha * x + self.beta)
        r = torch.relu(x)
        return torch.pow(r, float(self.p.item())) * g

batch_size = 16
dim = 16384

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

def get_init_inputs():
    alpha = torch.tensor(1.0, dtype=torch.float32)
    beta = torch.tensor(0.0, dtype=torch.float32)
    p = torch.tensor(2.0, dtype=torch.float32)
    return [alpha, beta, p]
