"""本课独立实验；在仓库根目录执行 .venv/bin/python lessons/09/experiment.py。"""
import sys, json, math
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[2]))
import torch
from torch import nn
from torch.nn import functional as F
from poetry_gpt.common import ROOT, DEFAULT_DATA, read_json, read_jsonl
from poetry_gpt.model import ModelConfig, PoetryGPT, CausalAttention, Block
from poetry_gpt.data import Tokenizer, SPECIAL, clean_record, keywords_for
from poetry_gpt.labs import show
torch.set_num_threads(2)
torch.manual_seed(26)

e, p = (nn.Embedding(6, 4), nn.Embedding(4, 4))
a = torch.tensor([1, 2, 3])
b = torch.tensor([2, 1, 3])
pos = torch.arange(3)
show('原序列第一个位置', (e(a) + p(pos))[0].tolist())
show('换序列第一个位置', (e(b) + p(pos))[0].tolist())
show('位置编号', pos.tolist())
