"""第 15 课补全练习：串联 GPT 的计算。修改 solve，保持下方检查不变。"""
import math, io, argparse
import torch
from torch import nn
from torch.nn import functional as F
torch.set_num_threads(2)
torch.manual_seed(26)

def solve(tokens, characters, positions, blocks, norm, output):
    raise NotImplementedError("请补全：串联 GPT 的计算；参考答案见 solution.py")

torch.manual_seed(2)
tokens=torch.tensor([[1,2,3]])
characters=nn.Embedding(10,8);positions=nn.Embedding(8,8)
blocks=nn.ModuleList([nn.Linear(8,8)]);norm=nn.LayerNorm(8);output=nn.Linear(8,10)
y=solve(tokens,characters,positions,blocks,norm,output)
assert y.shape==(1,3,10) and torch.isfinite(y).all()
print("本课补全练习通过。")
