Back to Annotated Deep Learning Paper Implementations

නොපැහැදිලි ටයිල් සක්රීය කිරීම් (FTA)

docs/si/activations/fta/index.html

latest6.7 KB
Original Source

homeactivationsfta

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

#

නොපැහැදිලි ටයිල් සක්රීය කිරීම් (FTA)

මෙය PyTorch ක්රියාත්මක කිරීම/නිබන්ධනයකි නොපැහැදිලි ටයිලිං සක්රීය කිරීම්: අන්තර්ජාලය හරහා විරල නිරූපණ ඉගෙන ගැනීම සඳහා සරල ප්රවේශයකි.

නොපැහැදිලි ටයිල් සක්රිය කිරීම් යනු බින්නිං මත පදනම් වූ විරල ක්රියාකාරිත්වයේ ආකාරයකි.

බින්ටින් යනු කාල අන්තරයන් මත පදනම්ව පරිමාණ අගයක් බඳුනකට වර්ගීකරණය කිරීමයි. බින්ටින් කිරීමේ එක් ගැටළුවක් නම්, එය බොහෝ අගයන් සඳහා ශුන්ය අනුක්රමික ලබා දෙයි (බදුන් මායිමේ හැර). අනෙක බින් කාල පරතරයන් විශාල නම් බින්නිං නිරවද්යතාව නැති වීමයි.

වෙළෙඳ ගිවිසුමක් මෙම අවාසි ජය. ටයිල් ඇක්ටිවේෂන් වලදී මෙන් දැඩි සීමාවන් වෙනුවට FTA බඳුන් අතර මෘදු මායිම් භාවිතා කරයි. මෙය සියලු හෝ පුළුල් පරාසයක අගයන් සඳහා ශුන්ය නොවන අනුක්රමික ලබා දෙයි. තවද එය අර්ධ අගයන් වලින් අල්ලා ගන්නා බැවින් නිරවද්යතාව නැති නොවේ.

ටයිල් ඇක්ටිවේෂන්

cටයිල් දෛශිකය,

c=(l,l+δ,l+2δ,…,u−2δ,u−δ)

ආදාන පරාසය[l,u] කොතැනද,δ බින් ප්රමාණයu−l වන අතර එය බෙදියδ හැකිය.

ටයිල් සක්රිය කිරීම වේ,

ϕ(z)=1−I+​(max(c−z,0)+max(z−δ−c))

ආදානය ධනාත්මක සහ0 වෙනත් ආකාරයකින්1 නම් ලබා දෙන දර්ශක ශ්රිතයI+​(⋅) කොහේද?

එය දුෂ්කර සීමාවන් ඇති බැවින් ටයිල් සක්රිය කිරීම ශුන්ය අනුක්රමික ලබා දෙන බව සලකන්න.

නොපැහැදිලි ටයිල් ක්රියාකාරකම්

මෙම නොපැහැදිලි දර්ශකයක් කාර්යය,

Iη,+​(x)=I+​(η−x)x+I+​(x−η)

එය රේඛීයව සිට10≤x<η කවදාද0 දක්වා වැඩි වන අතර එය සමාන1 වේη≤x. ηයනු අධි-පරාමිතියකි.

බඳුන් අතර මෘදු මායිම් නිර්මාණය කිරීමට FTA මෙය භාවිතා කරයි.

ϕη​(z)=1−Iη,+​(max(c−z,0)+max(z−δ−c,0))

ට්රාන්ස්ෆෝමරයක් තුළ FTA භාවිතා කරන සරල අත්හදා බැලීමක් මෙන්න.

61importtorch62fromtorchimportnn

#

නොපැහැදිලිටයිල් සක්රීය කිරීම් (FTA)

65classFTA(nn.Module):

#

  • lower_limit පහළ සීමාව වේ l
  • upper_limit ඉහළ සීමාව වේ u
  • delta බඳුනේ ප්රමාණය δ
  • eta සීමාවල මෘදු η බව detemines බව පරාමිතිය වේ.
70def\_\_init\_\_(self,lower\_limit:float,upper\_limit:float,delta:float,eta:float):

#

77super().\_\_init\_\_()

#

දෛශිකටයිල් කිරීම ආරම්භ කරන්න c=(l,l+δ,l+2δ,…,u−2δ,u−δ)

80self.c=nn.Parameter(torch.arange(lower\_limit,upper\_limit,delta),requires\_grad=False)

#

ආදානදෛශිකය බඳුන් සංඛ්යාවට සමාන සාධකයක් මගින් පුළුල් වේ δu−l​

82self.expansion\_factor=len(self.c)

#

δ

84self.delta=delta

#

η

86self.eta=eta

#

නොපැහැදිලිදර්ශක ශ්රිතය

Iη,+​(x)=I+​(η−x)x+I+​(x−η)

88deffuzzy\_i\_plus(self,x:torch.Tensor):

#

94return(x\<=self.eta)\*x+(x\>self.eta)

#

96defforward(self,z:torch.Tensor):

#

ප්රමාණයේතවත් මානයක් එක් කරන්න 1. අපි මෙය බඳුන් බවට පුළුල් කරන්නෙමු.

99z=z.view(\*z.shape,1)

#

ϕη​(z)=1−Iη,+​(max(c−z,0)+max(z−δ−c,0))

102z=1.-self.fuzzy\_i\_plus(torch.clip(self.c-z,min=0.)+torch.clip(z-self.delta-self.c,min=0.))

#

මුල්මානයන් ගණනට නැවත හැඩගස්වා ගන්න. අවසාන මානයන් ප්රමාණය බඳුන් ගණන අනුව පුළුල් δu−l​වේ,.

106returnz.view(\*z.shape[:-2],-1)

#

FTAමොඩියුලය පරීක්ෂා කිරීමට කේතය

109def\_test():

#

113fromlabml.loggerimportinspect

#

ආරම්භකරන්න

116a=FTA(-10,10,2.,0.5)

#

මුද්රණය c

118inspect(a.c)

#

බඳුන්ගණන මුද්රණය කරන්න δu−l​

120inspect(a.expansion\_factor)

#

ආදානය z

123z=torch.tensor([1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.,10.,11.])

#

මුද්රණය z

125inspect(z)

#

මුද්රණය ϕη​(z)

127inspect(a(z))128129130if\_\_name\_\_=='\_\_main\_\_':131\_test()

Trending Research Paperslabml.ai