Custom Activation Function (GELU) trong PyTorch Kế thừa autograd.Function
GELU(x) ≈ 0.5 x (1 + tanh(√(2π)(x + 0.044715 x3)))
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: pytorch-autograd-polynomial.
Nội dung đề bài
Mục tiêu kiến thức
- Hiểu cách mở rộng PyTorch bằng
torch.autograd.Functioncho các toán tử tùy biến. - Công thức xấp xỉ Gaussian Error Linear Unit (GELU) trong BERT và GPT:
GELU(x) ≈ 0.5 x (1 + tanh(√(2π)(x + 0.044715 x3)))
- Đạo hàm phân tích (Backward pass):
Đặt u = √(2π)(x + 0.044715 x3) và t = tanh(u). Khi đó GELU(x) = 0.5 x (1 + t). ddxGELU(x) = 0.5(1 + t) + 0.5 x (1 - t2) √(2π)(1 + 3 · 0.044715 x2) Áp dụng quy tắc chuỗi: grad_input = grad_output · ddxGELU(x).
Yêu cầu
Viết lớp FastGELUFunction(torch.autograd.Function) và hàm bao bọc fast_gelu(x: torch.Tensor) -> torch.Tensor:
forward(ctx, x): Lưuxvào contextctx.save_for_backward(x)và trả về tensor kết quả GELU.backward(ctx, grad_output): Lấyx = ctx.saved_tensors[0], tính đạo hàm giải tích và trả vềgrad_x.fast_gelu(x): GọiFastGELUFunction.apply(x).
Input
- Hàm
fast_gelu(x): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm
fast_gelu: Trả về kết quả kiểutorch.Tensortheo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 3000ms.
- Giới hạn bộ nhớ: 512MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
x0 = torch.tensor([0.0], dtype=torch.float64, requires_grad=True)
y0 = fast_gelu(x0)
x_neg = torch.tensor([-1.0], dtype=torch.float64)
y_neg = fast_gelu(x_neg)
x_pos = torch.tensor([5.0], dtype=torch.float64)Output
[5.]Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
torch.manual_seed(42)
x = torch.randn(5, 5, dtype=torch.float64, requires_grad=True)Output
Tensor shape: (5, 5), dtype=torch.float64Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
