Back to Annotated Deep Learning Paper Implementations

FNet: ෆූරියර් පරිණාමනය සමඟ ටෝකන මිශ්ර කිරීම

docs/si/transformers/fnet/index.html

latest5.6 KB
Original Source

hometransformersfnet

[View code on Github](https://github.com/labmlai/annotated_deep_learning_paper_implementations/tree/master/labml_nn/transformers/fnet/ init.py)

#

FNet: ෆූරියර් පරිණාමනය සමඟ ටෝකන මිශ්ර කිරීම

මෙයකඩදාසි FNet හිPyTorch ක්රියාත්මක කිරීම: ෆූරියර් ට්රාන්ස්ෆෝම් සමඟ ටෝකන මිශ්ර කිරීම.

මෙමකඩදාසි ස්වයං අවධානය ස්තරය ප්රතිස්ථාපනය කරයි ෆූරියර් දෙකක් ටෝකන මිශ්ර කිරීමට පරිවර්තනය කරයි. මෙය ස්වයං අවධානයට 7× වඩා කාර්යක්ෂම වේ. ස්වයං අවධානයෙන් මෙය භාවිතා කිරීමේ නිරවද්යතාව නැතිවීම GLUE මිණුම් දණ්ඩේ BERT සඳහා 92% ක් පමණ වේ.

ෆූරියර්පරිණාමන දෙකක් සමඟ ටෝකන මිශ්ර කිරීම

අපිFourier සැඟවුණු මානයක් (කාවැද්දීම මානයක්) හා පසුව අනුක්රමය මානයක් ඔස්සේ පරිණාමනය අදාළ වේ.

R(Fseq​(Fhidden​(x)))

කාවැද්දීමේ x ආදානය කොතැනද, F ෆූරියර් පරිණාමනය සඳහා R පෙනී සිටින අතර සංකීර්ණ සංඛ්යා වල සැබෑ සංරචකය නියෝජනය කරයි.

PyTorchමත ක්රියාත්මක කිරීම සඳහා මෙය ඉතා සරලයි - කේත 1 පේළියක් පමණි. කඩදාසි යෝජනා කරන්නේ පෙර සැකසූ ඩීඑෆ්ටී න්යාසයක් භාවිතා කිරීම සහ ෆූරියර් පරිවර්තනය ලබා ගැනීම සඳහා අනුකෘති ගුණ කිරීම ය.

AG News වර්ගීකරණය කිරීම සඳහා FNet පදනම් කරගත් ආකෘතියක් භාවිතා කිරීම සඳහා පුහුණු කේතය මෙන්න.

41fromtypingimportOptional4243importtorch44fromtorchimportnn

#

FNet- ටෝකන මිශ්ර කරන්න

මෙමමොඩියුලය සරලව ක්රියාත්මක කරයි R(Fseq​(Fhidden​(x)))

මෙමමොඩියුලයේ ව්යුහය සම්මත අවධානය මොඩියුලයකට සමාන වන අතර එමඟින් අපට එය ප්රතිස්ථාපනය කළ හැකිය.

47classFNetMix(nn.Module):

#

සාමාන්ය අවධානය යොමු කිරීමේ මොඩියුලය සඳහා queryවිවිධ ටෝකන කාවැද්දීම් value සහ වෙස් මුහුණක් සමඟ පෝෂණය කළ හැකිය.key

අපිඑකම ක්රියාකාරී අත්සන අනුගමනය කරන අතර එමඟින් අපට එය කෙලින්ම ප්රතිස්ථාපනය කළ හැකිය.

FNetමිශ්ර කිරීම සඳහා, x=query=key=value සහ ආවරණ කිරීම කළ නොහැක. query ( සහ key සහ value ) හැඩය වේ [seq_len, batch_size, d_model] .

60defforward(self,query:torch.Tensor,key:torch.Tensor,value:torch.Tensor,mask:Optional[torch.Tensor]=None):

#

query,key, සහ value සියල්ලම ටෝකන් මිශ්ර කිරීම x සඳහා සමාන විය යුතුය

72assertqueryiskeyandkeyisvalue

#

ටෝකන්මිශ්ර කිරීම ආවරණ සඳහා සහය නොදක්වයි. එනම් සියලුම ටෝකන මගින් අනෙකුත් සියලුම ටෝකන කාවැද්දීම් දකිනු ඇත.

74assertmaskisNone

#

පැහැදිලිකම x සඳහා පවරන්න

77x=query

#

සැඟවුණු(කාවැද්දීම) මානය ඔස්සේ ෆූරියර් පරිණාමනය යොදන්න Fhidden​(x)

ෆූරියර්පරිණාමයේ ප්රතිදානය සංකීර්ණ සංඛ්යාවල ආතතියකි.

84fft\_hidden=torch.fft.fft(x,dim=2)

#

අනුක්රමිකමානය ඔස්සේ ෆූරියර් පරිණාමනය යොදන්න Fseq​(Fhidden​(x))

87fft\_seq=torch.fft.fft(fft\_hidden,dim=0)

#

සැබෑසංරචකය ලබා ගන්න R(Fseq​(Fhidden​(x)))

91returntorch.real(fft\_seq)

Trending Research Paperslabml.ai