docs/si/transformers/fnet/experiment.html
මෙය FNet ආකෘතියක්පුහුණු කිරීම සඳහා කරන ලද PyTorch අත්හදා බැලීමකි.
මෙයපදනම් වී ඇත්තේ AG ප්රවෘත්ති වර්ගීකරණ කාර්යය සඳහා සාමාන්ය පුහුණු ලූප සහ වින්යාසයන්මත ය.
15importtorch16fromtorchimportnn1718fromlabmlimportexperiment19fromlabml.configsimportoption20fromlabml\_helpers.moduleimportModule21fromlabml\_nn.experiments.nlp\_classificationimportNLPClassificationConfigs22fromlabml\_nn.transformersimportEncoder23fromlabml\_nn.transformersimportTransformerConfigs
26classTransformerClassifier(nn.Module):
encoder ට්රාන්ස්ෆෝමර් එන්කෝඩරයsrc_embed යනු ටෝකන් කාවැද්දීමේ මොඩියුලය (ස්ථානීය කේතීකරණ සමඟ)generator යනු පිවිසුම් ලබා දෙන අවසාන පූර්ණ සම්බන්ධිත ස්ථරයයි .30def\_\_init\_\_(self,encoder:Encoder,src\_embed:Module,generator:nn.Linear):
37super().\_\_init\_\_()38self.src\_embed=src\_embed39self.encoder=encoder40self.generator=generator
42defforward(self,x:torch.Tensor):
ස්ථානීයකේතන ක්රම සමඟ ටෝකන් කාවැද්දීම් ලබා ගන්න
44x=self.src\_embed(x)
ට්රාන්ස්ෆෝමර්එන්කෝඩරය
46x=self.encoder(x,None)
වර්ගීකරණයසඳහා පිවිසුම් ලබා ගන්න.
අනුක්රමයේඅවසාන ස්ථානයේ අපි [CLS] ටෝකනය සකස් කරමු. මෙය උපුටා ගනු ලබන්නේ x[-1] හැඩයෙන් x කොතැනද
? [seq_len, batch_size, d_model]
52x=self.generator(x[-1])
ප්රතිලාභප්රති results ල (දෙවන අගය රාජ්ය සඳහා වේ, මන්ද අපගේ පුහුණුකරු RNs සමඟ ද භාවිතා කරයි)
56returnx,None
මෙයඋරුම වන්නේ NLPClassificationConfigs
59classConfigs(NLPClassificationConfigs):
වර්ගීකරණආකෘතිය
68model:TransformerClassifier
ට්රාන්ස්ෆෝමර්
70transformer:TransformerConfigs
73@option(Configs.transformer)74def\_transformer\_configs(c:Configs):
අපගේ වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමර් ක්රියාත්මක කිරීම භාවිතා කරමු
81conf=TransformerConfigs()
කාවැද්දීම්සහ පිවිසුම් උත්පාදනය සඳහා වචන මාලාව ප්රමාණ සකසන්න
83conf.n\_src\_vocab=c.n\_tokens84conf.n\_tgt\_vocab=c.n\_tokens
87returnconf
ට්රාන්ස්ෆෝමර් එන්කෝඩර් ස්ථරයේ ස්වයං අවධානය ප්රතිස්ථාපනය කළ හැකි FNetMix මොඩියුලයක් සාදන්න.
90@option(TransformerConfigs.encoder\_attn)91deffnet\_mix():
97fromlabml\_nn.transformers.fnetimportFNetMix98returnFNetMix()
වර්ගීකරණආකෘතිය සාදන්න
101@option(Configs.model)102def\_model(c:Configs):
106m=TransformerClassifier(c.transformer.encoder,107c.transformer.src\_embed,108nn.Linear(c.d\_model,c.n\_classes)).to(c.device)109110returnm
113defmain():
අත්හදාබැලීම සාදන්න
115experiment.create(name="fnet")
වින්යාසසාදන්න
117conf=Configs()
වින්යාසයන්අභිබවා යන්න
119experiment.configs(conf,{
ලෝකමට්ටමේ ටෝකනයිසර් භාවිතා කරන්න
121'tokenizer':'basic\_english',
32 Epochs සඳහා දුම්රිය
124'epochs':32,
එක් 10 යුගයකට වරක් පුහුණුව සහ වලංගු කිරීම අතර මාරු වන්න
127'inner\_iterations':10,
ට්රාන්ස්ෆෝමර්වින්යාසයන් (පෙරනිමි ලෙස)
130'transformer.d\_model':512,131'transformer.ffn.d\_ff':2048,132'transformer.n\_heads':8,133'transformer.n\_layers':6,
ස්වයං-ඇලවීමවෙනුවට FNet භාවිතා කරන්න
137'transformer.encoder\_attn':'fnet\_mix',
නෝම් ප්රශස්තකරණය භාවිතා කරන්න
140'optimizer.optimizer':'Noam',141'optimizer.learning\_rate':1.,142})
ඉතිරිකිරීම සහ පැටවීම සඳහා ආකෘති සකසන්න
145experiment.add\_pytorch\_models({'model':conf.model})
අත්හදාබැලීම ආරම්භ කරන්න
148withexperiment.start():
පුහුණුධාවනය
150conf.run()
154if\_\_name\_\_=='\_\_main\_\_':155main()