Back to Annotated Deep Learning Paper Implementations

MNISTඅත්හදා බැලීම

docs/si/experiments/mnist.html

latest5.2 KB
Original Source

homeexperiments

View code on Github

#

MNISTඅත්හදා බැලීම

11importtorch.nnasnn12importtorch.utils.data13fromlabml\_helpers.moduleimportModule1415fromlabmlimporttracker16fromlabml.configsimportoption17fromlabml\_helpers.datasets.mnistimportMNISTConfigsasMNISTDatasetConfigs18fromlabml\_helpers.deviceimportDeviceConfigs19fromlabml\_helpers.metrics.accuracyimportAccuracy20fromlabml\_helpers.train\_validimportTrainValidConfigs,BatchIndex,hook\_model\_outputs21fromlabml\_nn.optimizers.configsimportOptimizerConfigs

#

පුහුණුකරුමානකරණ

24classMNISTConfigs(MNISTDatasetConfigs,TrainValidConfigs):

#

ප්රශස්තකරණය

32optimizer:torch.optim.Adam

#

පුහුණුඋපාංගය

34device:torch.device=DeviceConfigs()

#

වර්ගීකරණආකෘතිය

37model:Module

#

පුහුණුකිරීමට එපොච් ගණන

39epochs:int=10

#

එපෝච්තුළ පුහුණුව සහ වලංගු කිරීම අතර මාරු වීමට වාර ගණන

42inner\_iterations=10

#

නිරවද්යතාශ්රිතය

45accuracy=Accuracy()

#

පාඩුශ්රිතය

47loss\_func=nn.CrossEntropyLoss()

#

ආරම්භකකරණය

49definit(self):

#

ට්රැකර්වින්යාසයන් සකසන්න

54tracker.set\_scalar("loss.\*",True)55tracker.set\_scalar("accuracy.\*",True)

#

මොඩියුලප්රතිදානයන් ලොග් කිරීමට කොක්කක් එක් කරන්න

57hook\_model\_outputs(self.mode,self.model,'model')

#

රාජ්යමොඩියුලයක් ලෙස නිරවද්යතාව එක් කරන්න. RNs සඳහා පුහුණුව සහ වලංගු කිරීම අතර රාජ්යයන් ගබඩා කිරීම අදහස් කරන බැවින් නම බොහෝ විට ව්යාකූල වේ. මෙය පුහුණුව සහ වලංගු කිරීම සඳහා නිරවද්යතා මෙට්රික් සංඛ්යාන වෙනම තබා ගනී.

62self.state\_modules=[self.accuracy]

#

පුහුණුවහෝ වලංගු කිරීමේ පියවර

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

#

පුහුණුව/ඇගයීම්මාදිලිය

70self.model.train(self.mode.is\_train)

#

උපාංගයවෙත දත්ත ගෙනයන්න

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

#

පුහුණුප්රකාරයේදී ගෝලීය පියවර (සැකසූ සාම්පල ගණන) යාවත්කාලීන කරන්න

76ifself.mode.is\_train:77tracker.add\_global\_step(len(data))

#

ආකෘතිප්රතිදානයන් ග්රහණය කර ගත යුතුද යන්න

80withself.mode.update(is\_log\_activations=batch\_idx.is\_last):

#

ආදර්ශප්රතිදානයන් ලබා ගන්න.

82output=self.model(data)

#

ගණනයකිරීම සහ ලොග් වීම

85loss=self.loss\_func(output,target)86tracker.add("loss.",loss)

#

ගණනයකිරීම සහ ලොග් කිරීමේ නිරවද්යතාවය

89self.accuracy(output,target)90self.accuracy.track()

#

ආකෘතියපුහුණු කරන්න

93ifself.mode.is\_train:

#

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

95loss.backward()

#

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

97self.optimizer.step()

#

සෑමයුගලයකම අවසාන කණ්ඩායමේ ආදර්ශ පරාමිතීන් සහ අනුක්රමික ලොග් කරන්න

99ifbatch\_idx.is\_last:100tracker.add('model',self.model)

#

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

102self.optimizer.zero\_grad()

#

ලුහුබැඳඇති ප්රමිතික සුරකින්න

105tracker.save()

#

පෙරනිමිප්රශස්තිකරණ වින්යාසයන්

108@option(MNISTConfigs.optimizer)109def\_optimizer(c:MNISTConfigs):

#

113opt\_conf=OptimizerConfigs()114opt\_conf.parameters=c.model.parameters()115opt\_conf.optimizer='Adam'116returnopt\_conf

Trending Research Paperslabml.ai