Back to Annotated Deep Learning Paper Implementations

ප්රශස්තකරණයපරීක්ෂා කිරීම සඳහා MNIST උදාහරණය

docs/si/optimizers/mnist_experiment.html

latest5.0 KB
Original Source

homeoptimizers

View code on Github

#

ප්රශස්තකරණයපරීක්ෂා කිරීම සඳහා MNIST උදාහරණය

9importtorch.nnasnn10importtorch.utils.data11fromlabml\_helpers.moduleimportModule1213fromlabmlimportexperiment,tracker14fromlabml.configsimportoption15fromlabml\_helpers.datasets.mnistimportMNISTConfigs16fromlabml\_helpers.deviceimportDeviceConfigs17fromlabml\_helpers.metrics.accuracyimportAccuracy18fromlabml\_helpers.seedimportSeedConfigs19fromlabml\_helpers.train\_validimportTrainValidConfigs,BatchIndex,hook\_model\_outputs20fromlabml\_nn.optimizers.configsimportOptimizerConfigs

#

ආකෘතිය

23classModel(Module):

#

27def\_\_init\_\_(self):28super().\_\_init\_\_()29self.conv1=nn.Conv2d(1,20,5,1)30self.pool1=nn.MaxPool2d(2)31self.conv2=nn.Conv2d(20,50,5,1)32self.pool2=nn.MaxPool2d(2)33self.fc1=nn.Linear(16\*50,500)34self.fc2=nn.Linear(500,10)35self.activation=nn.ReLU()

#

37defforward(self,x):38x=self.activation(self.conv1(x))39x=self.pool1(x)40x=self.activation(self.conv2(x))41x=self.pool2(x)42x=self.activation(self.fc1(x.view(-1,16\*50)))43returnself.fc2(x)

#

සැකසූඅත්හදා බැලීමේ අර්ථ දැක්වීම

46classConfigs(MNISTConfigs,TrainValidConfigs):

#

50optimizer:torch.optim.Adam51model:nn.Module52set\_seed=SeedConfigs()53device:torch.device=DeviceConfigs()54epochs:int=105556is\_save\_models=True57model:nn.Module58inner\_iterations=105960accuracy\_func=Accuracy()61loss\_func=nn.CrossEntropyLoss()

#

63definit(self):64tracker.set\_queue("loss.\*",20,True)65tracker.set\_scalar("accuracy.\*",True)66hook\_model\_outputs(self.mode,self.model,'model')67self.state\_modules=[self.accuracy\_func]

#

69defstep(self,batch:any,batch\_idx:BatchIndex):

#

කණ්ඩායමලබා ගන්න

71data,target=batch[0].to(self.device),batch[1].to(self.device)

#

අපපුහුණු මාදිලියේ සිටී නම් ගෝලීය පියවර එක් කරන්න

74ifself.mode.is\_train:75tracker.add\_global\_step(len(data))

#

ආකෘතියධාවනය කර සක්රිය කිරීම් ලොග් කළ යුතුද යන්න සඳහන් කරන්න

78withself.mode.update(is\_log\_activations=batch\_idx.is\_last):79output=self.model(data)

#

අලාභයගණනය කරන්න

82loss=self.loss\_func(output,target)

#

නිරවද්යතාවයගණනය කරන්න

84self.accuracy\_func(output,target)

#

අලාභයලොග් කරන්න

86tracker.add("loss.",loss)

#

අපපුහුණු මාදිලියේ සිටී නම් ප්රශස්තිකරණය කරන්න

89ifself.mode.is\_train:

#

අනුක්රමිකගණනය

91loss.backward()

#

ප්රශස්තිකරණපියවර ගන්න

94self.optimizer.step()

#

පරාමිතියසහ ශ්රේණියේ L2 සම්මතයන් එක් වරක් ලොග් කරන්න

96ifbatch\_idx.is\_last:97tracker.add('model',self.model)98tracker.add('optimizer',(self.optimizer,{'model':self.model}))

#

අනුක්රමිකඉවත්

100self.optimizer.zero\_grad()

#

ලොග්සුරකින්න

103tracker.save()

#

වින්යාසගතකළ හැකි ප්රශස්තිකරණයක් සාදන්න. වින්යාසයන් භාවිතා කරමින් අපට ප්රශස්තිකරණ වර්ගය සහ අධි පරාමිතීන් වෙනස් කළ හැකිය.

106@option(Configs.model)107defmodel(c:Configs):108returnModel().to(c.device)109110111@option(Configs.optimizer)112def\_optimizer(c:Configs):

#

117opt\_conf=OptimizerConfigs()118opt\_conf.parameters=c.model.parameters()119returnopt\_conf

#

122defmain():123conf=Configs()124conf.inner\_iterations=10125experiment.create(name='mnist\_ada\_belief')126experiment.configs(conf,{'inner\_iterations':10,

#

ප්රශස්තකරණයසඳහන් කරන්න

128'optimizer.optimizer':'Adam',129'optimizer.learning\_rate':1.5e-4})130conf.set\_seed.set()131experiment.add\_pytorch\_models(dict(model=conf.model))132withexperiment.start():133conf.run()134135136if\_\_name\_\_=='\_\_main\_\_':137main()

Trending Research Paperslabml.ai