Back to Annotated Deep Learning Paper Implementations

ගැඹුරුසංවහන උත්පාදක අහිතකර ජාල (DCGAN)

docs/si/gan/dcgan/index.html

latest4.5 KB
Original Source

homegandcgan

[View code on Github](https://github.com/labmlai/annotated_deep_learning_paper_implementations/tree/master/labml_nn/gan/dcgan/ init.py)

#

ගැඹුරුසංවහන උත්පාදක අහිතකර ජාල (DCGAN)

මෙය PyTorch ගැඹුරු සංකෝචන උත්පාදක අහිතකර ජාලයන් සමඟ කඩදාසි අධීක්ෂණය නොකළ නියෝජන ඉගෙනුම් ක්රියාත්මක කිරීමයි.

මෙමක්රියාත්මක කිරීම PyTorch DCGAN නිබන්ධනයමත පදනම් වේ.

15importtorch.nnasnn1617fromlabmlimportexperiment18fromlabml.configsimportcalculate19fromlabml\_helpers.moduleimportModule20fromlabml\_nn.gan.original.experimentimportConfigs

#

සංවර්තජාල උත්පාදක යන්ත්රය

මෙයසෙලෙබා මුහුණු සඳහා භාවිතා කරන ද-සංවහන ජාලයට සමාන වන නමුත් MNIST රූප සඳහා වෙනස් කර ඇත.

23classGenerator(Module):

#

33def\_\_init\_\_(self):34super().\_\_init\_\_()

#

ආදානයනාලිකා 100 ක් 1×1 සමඟ ඇත

36self.layers=nn.Sequential(

#

මෙය 3×3 ප්රතිදානය ලබා දෙයි

38nn.ConvTranspose2d(100,1024,3,1,0,bias=False),39nn.BatchNorm2d(1024),40nn.ReLU(True),

#

මෙයලබා දෙයි 7×7

42nn.ConvTranspose2d(1024,512,3,2,0,bias=False),43nn.BatchNorm2d(512),44nn.ReLU(True),

#

මෙයලබා දෙයි 14×14

46nn.ConvTranspose2d(512,256,4,2,1,bias=False),47nn.BatchNorm2d(256),48nn.ReLU(True),

#

මෙයලබා දෙයි 28×28

50nn.ConvTranspose2d(256,1,4,2,1,bias=False),51nn.Tanh()52)5354self.apply(\_weights\_init)

#

56defforward(self,x):

#

හැඩයෙන්වෙනස් [batch_size, 100] කරන්න [batch_size, 100, 1, 1]

58x=x.unsqueeze(-1).unsqueeze(-1)59x=self.layers(x)60returnx

#

සංවිච්ඡේදකවිසංවාදී ජාලය

63classDiscriminator(Module):

#

68def\_\_init\_\_(self):69super().\_\_init\_\_()

#

ආදානයඑක් නාලිකාවක් 28×28 සමඟ ඇත

71self.layers=nn.Sequential(

#

මෙයලබා දෙයි 14×14

73nn.Conv2d(1,256,4,2,1,bias=False),74nn.LeakyReLU(0.2,inplace=True),

#

මෙයලබා දෙයි 7×7

76nn.Conv2d(256,512,4,2,1,bias=False),77nn.BatchNorm2d(512),78nn.LeakyReLU(0.2,inplace=True),

#

මෙයලබා දෙයි 3×3

80nn.Conv2d(512,1024,3,2,0,bias=False),81nn.BatchNorm2d(1024),82nn.LeakyReLU(0.2,inplace=True),

#

මෙයලබා දෙයි 1×1

84nn.Conv2d(1024,1,3,1,0,bias=False),85)86self.apply(\_weights\_init)

#

88defforward(self,x):89x=self.layers(x)90returnx.view(x.shape[0],-1)

#

93def\_weights\_init(m):94classname=m.\_\_class\_\_.\_\_name\_\_95ifclassname.find('Conv')!=-1:96nn.init.normal\_(m.weight.data,0.0,0.02)97elifclassname.find('BatchNorm')!=-1:98nn.init.normal\_(m.weight.data,1.0,0.02)99nn.init.constant\_(m.bias.data,0)

#

අපි සරල ගැන් අත්හදා බැලීම් ආනයනය කර උත්පාදක යන්ත්රය සහ වෙනස්කම් කරන ජාල වෙනස් කරමු

104calculate(Configs.generator,'cnn',lambdac:Generator().to(c.device))105calculate(Configs.discriminator,'cnn',lambdac:Discriminator().to(c.device))

#

108defmain():109conf=Configs()110experiment.create(name='mnist\_dcgan')111experiment.configs(conf,112{'discriminator':'cnn',113'generator':'cnn',114'label\_smoothing':0.01})115withexperiment.start():116conf.run()117118119if\_\_name\_\_=='\_\_main\_\_':120main()

Trending Research Paperslabml.ai