docs/si/graphs/gatv2/experiment.html
13importtorch14fromtorchimportnn1516fromlabmlimportexperiment17fromlabml.configsimportoption18fromlabml\_helpers.moduleimportModule19fromlabml\_nn.graphs.gat.experimentimportConfigsasGATConfigs20fromlabml\_nn.graphs.gatv2importGraphAttentionV2Layer
මෙමප්රස්තාර අවධානය ජාලය ප්රස්තාරය අවධානය ස්ථරදෙකක් ඇත.
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()