මෙන්නඅපි පළමුව පිවිසුම් බෙදා හැරීමෙන් ඉහළම කේ ටෝකන තෝරාගෙන ඒවායින් සාම්පල ලබා ගනිමු.
මෙන්නමෙම නියැදි ශිල්පීය ක්රම භාවිතා කරන අත්හදා බැලීමක් .
15import torch
16
17from labml_nn.sampling import Sampler20class TopKSampler(Sampler):k
තෝරා ගැනීමට ටෝකන ගණන වේ sampler
ඉහළ-k ටෝකන සඳහා භාවිතා කිරීමට නියැදිකරු වේsampler
පිවිසුම් ටෙන්සරයක් ආදාන ලෙස ගෙන ටෝකන් ටෙන්සරයක් නැවත ලබා දෙන ඕනෑම නියැදියක විය හැකිය; උදා: `උෂ්ණත්ව සාම්පලයක්'.
24 def __init__(self, k: int, sampler: Sampler):32 self.k = k
33 self.sampler = samplerපිවිසුම්වලින් නියැදිය
35 def __call__(self, logits: torch.Tensor):නවපිවිසුම් පිරී ඇත ; i.e. ශුන්ය සම්භාවිතාව
40 zeros = logits.new_ones(logits.shape) * float('-inf')විශාලතම පිවිසුම් සහ ඒවායේ දර්ශක තෝරන්න
42 values, indices = torch.topk(logits, self.k, dim=-1)Top-kතෝරාගත් දර්ශකවල අගයන් සැබෑ පිවිසුම් වලට සකසන්න. වෙනත් ටෝකන වල පිවිසුම් ඉතිරිව පවතී
45 zeros.scatter_(-1, indices, values)නිශ්චිතනියැදිය සමඟ ඉහළ-k පිවිසුම් වලින් නියැදිය.
48 return self.sampler(zeros)