Back to Annotated Deep Learning Paper Implementations

කෝරාදත්ත කට්ටලය මත ප්රස්තාරය අවධානය ජාලය v2 (GATV2) පුහුණු

docs/si/graphs/gatv2/experiment.html

latest5.4 KB
Original Source

homegraphsgatv2

View code on Github

#

කෝරාදත්ත කට්ටලය මත ප්රස්තාරය අවධානය ජාලය v2 (GATV2) පුහුණු

13importtorch14fromtorchimportnn1516fromlabmlimportexperiment17fromlabml.configsimportoption18fromlabml\_helpers.moduleimportModule19fromlabml\_nn.graphs.gat.experimentimportConfigsasGATConfigs20fromlabml\_nn.graphs.gatv2importGraphAttentionV2Layer

#

අවධානයප්රස්තාරය ජාලය v2 (GATV2)

මෙමප්රස්තාර අවධානය ජාලය ප්රස්තාරය අවධානය ස්ථරදෙකක් ඇත.

23classGATv2(Module):

#

  • in_features node එකක් මතම ඊට අදාල විශේෂාංග සංඛ්යාව වේ
  • n_hidden පළමු ප්රස්තාරය අවධානය ස්ථරය ලක්ෂණ සංඛ්යාව වේ
  • n_classes යනු පන්ති ගණන
  • n_heads ප්රස්ථාර අවධානය ස්ථර වල හිස් ගණන
  • dropout අතහැර දැමීමේ සම්භාවිතාව
  • share_weights සත්ය ලෙස සකසා ඇත්නම්, සෑම දාරයකම ප්රභවයට සහ ඉලක්කගත නෝඩයට එකම අනුකෘතිය යොදනු ලැබේ
30def\_\_init\_\_(self,in\_features:int,n\_hidden:int,n\_classes:int,n\_heads:int,dropout:float,31share\_weights:bool=True):

#

40super().\_\_init\_\_()

#

අපිහිස් concatenate එහිදී පළමු ප්රස්තාරය අවධානය ස්ථරය

43self.layer1=GraphAttentionV2Layer(in\_features,n\_hidden,n\_heads,44is\_concat=True,dropout=dropout,share\_weights=share\_weights)

#

පළමුප්රස්ථාර අවධානය ස්ථරයෙන් පසු සක්රිය කිරීමේ කාර්යය

46self.activation=nn.ELU()

#

අපිහිස් සාමාන්යය එහිදී අවසන් ප්රස්තාරය අවධානය ස්ථරය

48self.output=GraphAttentionV2Layer(n\_hidden,n\_classes,1,49is\_concat=False,dropout=dropout,share\_weights=share\_weights)

#

හැලීම

51self.dropout=nn.Dropout(dropout)

#

  • x හැඩයේ ලක්ෂණ දෛශික වේ [n_nodes, in_features]
  • adj_mat යනු ආකෘතියේ අනුකෘතියේ අනුකෘතිය [n_nodes, n_nodes, n_heads] හෝ [n_nodes, n_nodes, 1]
53defforward(self,x:torch.Tensor,adj\_mat:torch.Tensor):

#

ආදානයටඅතහැර දැමීම යොදන්න

60x=self.dropout(x)

#

පළමුප්රස්ථාර අවධානය ස්ථරය

62x=self.layer1(x,adj\_mat)

#

සක්රියකිරීමේ කාර්යය

64x=self.activation(x)

#

හැලීම

66x=self.dropout(x)

#

පිවිසුම්සඳහා ප්රතිදාන ස්ථරය (සක්රිය කිරීමකින් තොරව)

68returnself.output(x,adj\_mat)

#

වින්යාසකිරීම්

අත්හදාබැලීම GAT අත්හදා බැලීමට සමාන වන නමුත් GATV2 ආකෘතිය සමඟ අපි එකම වින්යාස දිගු කර ආකෘතිය වෙනස් කරමු.

71classConfigs(GATConfigs):

#

දාරවලප්රභවය සහ ඉලක්කගත නෝඩ් සඳහා බර බෙදා ගත යුතුද යන්න

80share\_weights:bool=False

#

ආකෘතියසකසන්න

82model:GATv2='gat\_v2\_model'

#

GATV2ආකෘතිය සාදන්න

85@option(Configs.model)86defgat\_v2\_model(c:Configs):

#

90returnGATv2(c.in\_features,c.n\_hidden,c.n\_classes,c.n\_heads,c.dropout,c.share\_weights).to(c.device)

#

93defmain():

#

වින්යාසයන්සාදන්න

95conf=Configs()

#

අත්හදාබැලීමක් සාදන්න

97experiment.create(name='gatv2')

#

වින්යාසයන්ගණනය කරන්න.

99experiment.configs(conf,{

#

ආදම්ප්රශස්තකරණය

101'optimizer.optimizer':'Adam',102'optimizer.learning\_rate':5e-3,103'optimizer.weight\_decay':5e-4,104105'dropout':0.7,106})

#

අත්හදාබැලීම ආරම්භ කර නරඹන්න

109withexperiment.start():

#

පුහුණුවක්රියාත්මක කරන්න

111conf.run()

#

115if\_\_name\_\_=='\_\_main\_\_':116main()

Trending Research Paperslabml.ai