Back to Annotated Deep Learning Paper Implementations

FNet අත්හදා බැලීම

docs/si/transformers/fnet/experiment.html

latest6.7 KB
Original Source

hometransformersfnet

View code on Github

#

FNet අත්හදා බැලීම

මෙය FNet ආකෘතියක්පුහුණු කිරීම සඳහා කරන ලද PyTorch අත්හදා බැලීමකි.

මෙයපදනම් වී ඇත්තේ AG ප්රවෘත්ති වර්ගීකරණ කාර්යය සඳහා සාමාන්ය පුහුණු ලූප සහ වින්යාසයන්මත ය.

15importtorch16fromtorchimportnn1718fromlabmlimportexperiment19fromlabml.configsimportoption20fromlabml\_helpers.moduleimportModule21fromlabml\_nn.experiments.nlp\_classificationimportNLPClassificationConfigs22fromlabml\_nn.transformersimportEncoder23fromlabml\_nn.transformersimportTransformerConfigs

#

ට්රාන්ස්ෆෝමර්මත පදනම් වූ වර්ගීකරණ ආකෘතිය

26classTransformerClassifier(nn.Module):

#

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()

Trending Research Paperslabml.ai