docs/si/experiments/cifar10.html
10fromtypingimportList1112importtorch.nnasnn1314fromlabmlimportlab15fromlabml.configsimportoption16fromlabml\_helpers.datasets.cifar10importCIFAR10ConfigsasCIFAR10DatasetConfigs17fromlabml\_helpers.moduleimportModule18fromlabml\_nn.experiments.mnistimportMNISTConfigs
මෙමCIFAR සිට විහිදී 10 දත්ත සමුදාය මානකරණ labml_helpers හා MNISTConfigs .
21classCIFAR10Configs(CIFAR10DatasetConfigs,MNISTConfigs):
පෙරනිමියෙන්CIFAR10 දත්ත කට්ටලය භාවිතා කරන්න
30dataset\_name:str='CIFAR10'
33@option(CIFAR10Configs.train\_dataset)34defcifar10\_train\_augmented():
38fromtorchvision.datasetsimportCIFAR1039fromtorchvision.transformsimporttransforms40returnCIFAR10(str(lab.get\_data\_path()),41train=True,42download=True,43transform=transforms.Compose([
පෑඩ්සහ බෝග
45transforms.RandomCrop(32,padding=4),
අහඹුතිරස් පෙරළීම
47transforms.RandomHorizontalFlip(),
49transforms.ToTensor(),50transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))51]))
54@option(CIFAR10Configs.valid\_dataset)55defcifar10\_valid\_no\_augment():
59fromtorchvision.datasetsimportCIFAR1060fromtorchvision.transformsimporttransforms61returnCIFAR10(str(lab.get\_data\_path()),62train=False,63download=True,64transform=transforms.Compose([65transforms.ToTensor(),66transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))67]))
70classCIFAR10VGGModel(Module):
සම්මුතියසහ සක්රිය කිරීම ඒකාබද්ධ
75defconv\_block(self,in\_channels,out\_channels)-\>nn.Module:
79returnnn.Sequential(80nn.Conv2d(in\_channels,out\_channels,kernel\_size=3,padding=1),81nn.ReLU(inplace=True),82)
84def\_\_init\_\_(self,blocks:List[List[int]]):85super().\_\_init\_\_()
2×2 තටාක ස්ථර 5 ක් ප්රමාණයේ ප්රතිදානයක් නිපදවනු ඇත 1 times1. CIFAR 10 රූප ප්රමාණය 32×32
89assertlen(blocks)==590layers=[]
RGBනාලිකා
92in\_channels=3
එක්එක් කොටසෙහි එක් එක් ස්ථරයේ නාලිකා ගණන
94forblockinblocks:
සම්මුතිය, සාමාන්යකරණය සහ සක්රිය කිරීමේ ස්ථර
96forchannelsinblock:97layers+=self.conv\_block(in\_channels,channels)98in\_channels=channels
එක්එක් කොටස අවසානයේ මැක්ස් තටාක
100layers+=[nn.MaxPool2d(kernel\_size=2,stride=2)]
ස්ථරසමඟ අනුක්රමික ආකෘතියක් සාදන්න
103self.layers=nn.Sequential(\*layers)
අවසන්පිවිසුම් ස්ථරය
105self.fc=nn.Linear(in\_channels,10)
107defforward(self,x):
VGGස්ථර
109x=self.layers(x)
වර්ගීකරණස්ථරය සඳහා නැවත සකස් කරන්න
111x=x.view(x.shape[0],-1)
අවසානරේඛීය ස්ථරය
113returnself.fc(x)