docs/si/normalization/batch_norm/mnist.html
12importtorch.nnasnn13importtorch.nn.functionalasF14importtorch.utils.data1516fromlabmlimportexperiment17fromlabml.configsimportoption18fromlabml\_helpers.moduleimportModule19fromlabml\_nn.experiments.mnistimportMNISTConfigs20fromlabml\_nn.normalization.batch\_normimportBatchNorm
23classModel(Module):
28def\_\_init\_\_(self):29super().\_\_init\_\_()
අපිපක්ෂග්රාහී පරාමිතිය මඟ හැරි බව සලකන්න
31self.conv1=nn.Conv2d(1,20,5,1,bias=False)
නාලිකා20 ක් සහිත කණ්ඩායම් සාමාන්යකරණය (සංවහන ස්ථරයේ ප්රතිදානය). මෙම ස්ථරයට ආදානය හැඩය ඇත [batch_size, 20, height(24), width(24)]
34self.bn1=BatchNorm(20)
36self.conv2=nn.Conv2d(20,50,5,1,bias=False)
නාලිකා50 ක් සමඟ කණ්ඩායම් සාමාන්යකරණය කිරීම. මෙම ස්ථරයට ආදානය හැඩය ඇත [batch_size, 50, height(8), width(8)]
39self.bn2=BatchNorm(50)
41self.fc1=nn.Linear(4\*4\*50,500,bias=False)
නාලිකා500 ක් සමඟ කණ්ඩායම් සාමාන්යකරණය කිරීම (සම්පුර්ණයෙන්ම සම්බන්ධිත ස්ථරයේ ප්රතිදානය). මෙම ස්ථරයට ආදානය හැඩය ඇත [batch_size, 500]
44self.bn3=BatchNorm(500)
46self.fc2=nn.Linear(500,10)
48defforward(self,x:torch.Tensor):49x=F.relu(self.bn1(self.conv1(x)))50x=F.max\_pool2d(x,2,2)51x=F.relu(self.bn2(self.conv2(x)))52x=F.max\_pool2d(x,2,2)53x=x.view(-1,4\*4\*50)54x=F.relu(self.bn3(self.fc1(x)))55returnself.fc2(x)
අපි MNISTConfigs වින්යාසයන් භාවිතා කරන අතර ආකෘතිය ගණනය කිරීම සඳහා නව ශ්රිතයක් සකසන්න.
58@option(MNISTConfigs.model)59defmodel(c:MNISTConfigs):
66returnModel().to(c.device)
69defmain():
අත්හදාබැලීම සාදන්න
71experiment.create(name='mnist\_batch\_norm')
වින්යාසයන්සාදන්න
73conf=MNISTConfigs()
වින්යාසයන්පූරණය කරන්න
75experiment.configs(conf,{76'optimizer.optimizer':'Adam',77'optimizer.learning\_rate':0.001,78})
අත්හදාබැලීම ආරම්භ කර පුහුණු ලූපය ක්රියාත්මක කරන්න
80withexperiment.start():81conf.run()
85if\_\_name\_\_=='\_\_main\_\_':86main()