CARVIEW |
PyTorch?őS?????^??GAN??????Ă݂悤?F????Ď??????I?@?f?B?[?v???[?j???O?H?쎺?i1/2 ?y?[?W?j
GAN?̊?{?I?ȍ\??????????ɁAPyTorch??Linear?N???X??MNIST??ΏۂƂ???GAN?????????Ă݂܂??傤?B
???̋L???͉??????ł??B????o?^?i?????j????ƑS?Ă????????????܂??B
????̖ړI
?@?O??܂ł͐???ɂ킽???ăI?[?g?G???R?[?_?[?ɂ??Č??Ă??܂????B????͂???Ƃ͂܂??ʂ̉摜?????t???[?????[?N?Ƃ??Ă悭?m???Ă???GAN?iGenerative Adversarial Network?B?G?ΓI?????l?b?g???[?N?j??????Ă݂܂??傤?B?Ƃ????Ă??A????݂͂?ȑ?D???u?S?????^?v?̃j???[?????l?b?g???[?N?Ƃ??č???Ă݂܂??B
?@GAN?̑?\?I?ȗp?r?Ƃ??Ă͍???????グ??摜?????????????܂??B?G???G??????????????悤?ȃj???[?????l?b?g???[?N???f???͂??낢??ȂƂ???Řb??ɂȂ??????Ƃ???A?֘A????GAN?Ƃ???????o???Ă????????????????????ł??傤?B
?@GAN??2014?N?ɓo?ꂵ???A???S???Y???ł????A???̌?A???܂??܂ȉ??ǂ????????A???̔h???ƂȂ鐔?????̃A???S???Y?????o?ꂵ?Ă??܂??B???̈?ł???DCGAN?iDeep Convolutional GAN?j?ɂ??Ă͌㑱?̉?Ŏ??グ??\??ł??B?uConvolutional?v?Ƃ????ꂪ?܂܂?Ă??邱?Ƃ??????????ʂ?A?????CNN???g????GAN?̎????Ƃ????܂??B
?@?O??܂łɌ??Ă????I?[?g?G???R?[?_?[?́A?G???R?[?_?[?ƃf?R?[?_?[??2?̃j???[?????l?b?g???[?N??????j???[?????l?b?g???[?N?ł????BGAN???܂?2?̃j???[?????l?b?g???[?N?ō\??????܂??B1?͎??ʊ?idiscriminator?B???ʊ?Ƃ??j?ƁA????1?͐?????igenerator?j?ƌĂ?܂??B?????2?̃j???[?????l?b?g???[?N???u?G?v???Ȃ???w?K???i?ނ̂?GAN?̑傫?ȓ????ł??B
?@?????ł????u?G?v?Ƃ͂ǂ?ȈӖ??ł??傤?B?T?^?I??GAN?̍\???͎??̂悤?ɂȂ??Ă??܂??B
?@???ʊ?́u???͂??ꂽ?f?[?^???A??????ɂ?萶?????ꂽ???̂??A???A???ȃf?[?^?i?P???f?[?^?j?ł??邩?????ʂ???v???Ƃ?ړI?Ƃ??܂??B????A??????́u????????͂???ƁA???A???ȃf?[?^?i?P???f?[?^?j?Ƃ悭?????f?[?^?????邱?ƂŁA???ʊ?????܂??v???Ƃ?ړI?Ƃ??܂??B
?@GAN???\??????2?̃j???[?????l?b?g???[?N??????????ړI???????Ƃ???A???̃l?b?g???[?N?́u?G?ΓI?v?ƌĂ??Ƃ??????Ƃł??B?w?K???i?ނɂ?āA??????͌P???f?[?^?Ƃ悭?????f?[?^???ł???悤?ɂȂ?A???ʊ?͌P???f?[?^?Ɛ????킩?瓾????j?Z???m?̃f?[?^????荂???x?Ɏ??ʂł???悤?ɂȂ?͂??ł??B???̂悤?ɂ??āA?????x?ȃf?[?^???ł??鐶???????ɓ???邱?Ƃ?GAN?̖ړI?Ƃ????܂??B
?@??}???番????悤?ɁA???ʊ?ɂ͐????킪?????????f?[?^?ƁA?P???f?[?^?????͂???A???ꂪ?z?????m?i?P???f?[?^?j???j?Z???m?i??????ɂ??f?[?^?j???f????̂ŁA?o?͂?1?????ŁA???ꂪ1?ɋ߂??قǎ??ʊ?͂?????z?????m?ɋ߂??Ɣ??f???????ƂɂȂ?܂??B????Ȃ?PyTorch??Linear?N???X???g???āA?S?????^?̃l?b?g???[?N?????A?ȒP?Ɏ????ł??????ł??ˁB
?@????A??????̓I?[?g?G???R?[?_?[?̃f?R?[?_?[?ɋ߂??????????ƍl???邱?Ƃ??ł??܂??B?f?R?[?_?[?́A?G???R?[?_?[?ɂ??G???R?[?h???ꂽ???ʂł?????ݕϐ?????͂Ɏ??A?????i?K?I?Ɋg?????Ȃ??猳?f?[?^?ɋ߂??f?[?^???Č???????̂ł????B????ɑ??āA??????͐??ݕϐ??Ƃ??ă????_???Ȓl????͂Ɏ??A???̒l??i?K?I?Ɋg?????Ă??????ƂōŏI?I?Ɏ??ʊ?֓??͂????P???f?[?^?Ɠ????`???̃f?[?^?????܂??B
?@GAN?̊?{?I?ȍ\???͍??q?ׂ??ʂ?ł??B???????܂?????Ȃ??_??????܂????A????ɂ??Ă͕K?v?ɉ????Ęb?????Ă??????Ƃɂ??܂??傤?B?????ł́AMNIST?i?܂????I?j?̎菑???????Ƃ悭?????摜?f?[?^???ł???悤?Ȑ?????ƁA???̎??ʂ??s?????ʊ??????Ă??????Ƃɂ??܂??B
???ʊ?
?@?܂??͎??????ȒP?Ȏ??ʊ킩?猩?Ă????܂??B?Ȃ??A????̃R?[?h?????̃m?[?g?u?b?N?Ō??J???Ă??܂??B?܂??A??ɂ???āA?K?v?ȃ??W???[?????C???|?[?g????R?[?h?ȂǁA??^?I?ȃR?[?h?ɂ??Ă͍Ō?ɂ܂Ƃ߂܂??B
?@???ɏq?ׂ??悤?ɁA?????MNIST?̎菑?????????g???܂??B?܂?A1?~28?~28??784?????̃f?[?^?????ʊ?ɓ??͂??āA?????̐^??i????j?????ʂł???悤?ɂ??邱?Ƃ??ړI?ƂȂ?܂??B??????܂????ɏq?ׂĂ??܂????A????͂????PyTorch??Linear?N???X???g???č쐬???܂??B
?@?ׂ???????????K?v?͓??ɂȂ??̂ŁA???ۂ̃R?[?h???ȉ??Ɏ????Ă??܂??܂??傤?B
in_features = 1 * 28 * 28
class Discriminator(torch.nn.Module):
def __init__(self, in_features):
super().__init__()
self.fc1 = torch.nn.Linear(in_features, 384, bias=False)
self.fc2 = torch.nn.Linear(384, 128, bias=False)
self.fc3 = torch.nn.Linear(128, 1, bias=False)
self.relu = torch.nn.LeakyReLU()
def forward(self, x):
x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
x = torch.sigmoid(self.fc3(x)) # 0 to 1(0: fake, 1: true)
return x
?@???Ă̒ʂ?A????Discriminator?N???X??Liner?N???X?̃C???X?^???X?Ɗ?????????g?ݍ??킹?āA784?????̃f?[?^????͂Ɏ??A0?`1?͈̔͂̒l???o?͂??邾???ł??i?????????̈?ł???torch.nn.LearkyReLU?N???X?ɂ??Ă??????????Q?Ƃ??Ă????????j?B?????Ɏg???Ă݂܂??傤?B
netD = Discriminator(in_features)
iterator = iter(trainloader)
img, _ = next(iterator)
D_out = netD(img.reshape(batch_size, -1))
print(D_out[0:5])
?@?ϐ?trainloader??MNIST?̎菑?????????o?b?`???Ƃɓǂݍ??ރf?[?^???[?_?[?ł??B??̃R?[?h?ł́A??????g???ČP???f?[?^??ǂݍ??݁A?????Discriminator?N???X?̃C???X?^???X?ł???netD?ɓ??͂??āA???̌??ʁi?̈ꕔ?j??\?????Ă??܂??B????????s????ƁA???̂悤?ɂȂ?܂??B
?@???̊w?K?????Ă??Ȃ??̂ŁA?o?͌??ʂɂ͂??܂?Ӗ??͂Ȃ??ł??傤???A0?ł?1?ł??Ȃ????^?䂪???f?ł??Ă??Ȃ??Ƃ????߂ł???l?ƂȂ?܂????B?|?C???g?͂??̃N???X?̃C???X?^???X??MNIST?̃f?[?^?Z?b?g???瓾???f?[?^?i?P???f?[?^?Ȃǁj????͂????Ƃ??ɂ͏o?͂?1?i?ɋ߂??l?j?ɁA?????킩?瓾???f?[?^????͂????Ƃ??ɂ͏o?͂?0?ƂȂ?悤?Ɋw?K??i?߂邱?Ƃł??B
?@???ɐ?????ɂ??Č??Ă݂܂??傤?B
??????
?@??????????ɐ????̕K?v?͂Ȃ??R?[?h?ƂȂ??Ă??܂??B
zsize = 100
class Generator(torch.nn.Module):
def __init__(self, zsize, in_features):
super().__init__()
self.fc1 = torch.nn.Linear(zsize, 256, bias=False)
self.fc2 = torch.nn.Linear(256, 512, bias=False)
self.fc3 = torch.nn.Linear(512, in_features, bias=False)
self.relu = torch.nn.ReLU()
def forward(self, x):
x = self.relu(self.fc1(x))
x = self.relu(self.fc2(x))
x = torch.tanh(self.fc3(x)) # -1 to 1
return x
?@?ŏI?I?ȏo?͂?1?~28?~28??784?????̃f?[?^?ƂȂ?悤??Linear?N???X?Ɗ??????????g?p???Ă??邾???ł??B????????????Ɏg???Ă݂܂??傤?B
netG = Generator(zsize, in_features)
z = torch.randn(batch_size, zsize)
output = netG(z)
imshow(output[0:8].reshape(-1, 1, 28, 28))
?@???s???ʂ͎??̂悤?ɂȂ?܂????B
?@????????w?K?͉??????Ă??Ȃ??̂ŁA?o?͂????摜?̓m?b?y???Ƃ????O???[?摜?ƂȂ??Ă??܂??B??????قǍ쐬????Discriminator?N???X?̃C???X?^???X?ɓ??͂??Ă݂?ƁA?ǂ??Ȃ?ł??傤?B
G_out = netD(output)
print(G_out[0:5])
?@???s???ʂ??ȉ??Ɏ????܂??B????????????t???Ȃ??D?F????ƂȂ??Ă??܂??B?X?^?[?g?n?_?Ƃ??Ă͂܂??悢?̂ł͂Ȃ??ł??傤???B
Copyright© Digital Advantage Corp. All Rights Reserved.
?A?C?e?B???f?B?A????̂??m?点
??IT eBook
RSS?ɂ???
?A?C?e?B???f?B?AID?ɂ???
???[???}?K?W???o?^
??IT?̃??[???}?K?W???́A ???????A???ׂĖ????ł??B???Ѓ??[???}?K?W???????w?ǂ????????B
ITmedia?̓A?C?e?B???f?B?A??????Ђ̓o?^???W?ł??B
???f?B?A?ꗗ | ????SNS | ?L???ē? | ???₢???킹 | ?v???C?o?V?[?|???V?[ | RSS | ?^?c??? | ?̗p??? | ??????