forked from ccf-ai-infra/GPUCodeForces
29 lines
850 B
Python
29 lines
850 B
Python
import torch
|
|
import torch.nn as nn
|
|
|
|
class Model(nn.Module):
|
|
def __init__(self, scale: torch.Tensor, bias: torch.Tensor, alpha: float, beta: float):
|
|
super(Model, self).__init__()
|
|
self.register_buffer("scale", scale)
|
|
self.register_buffer("bias", bias)
|
|
self.register_buffer("alpha", torch.tensor(float(alpha), dtype=torch.float32))
|
|
self.register_buffer("beta", torch.tensor(float(beta), dtype=torch.float32))
|
|
|
|
def forward(self, x: torch.Tensor) -> torch.Tensor:
|
|
z = x * self.scale + self.bias
|
|
g = torch.sigmoid(self.alpha * torch.atan(z) + self.beta)
|
|
return x * g
|
|
|
|
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, 1.0, 0.0]
|
|
|