PyTorch��CIFAR-10����������I�[�g�G���R�[�_�[������Ă݂悤�F����Ď������I�@�f�B�[�v���[�j���O�H�쎺�i1/2 �y�[�W�j

CIFAR-10�̉摜�f�[�^�̃G���R�[�h�^�f�R�[�h�����܂��s�����߂ɁA���k��̎������ƃG�|�b�N����ω������Ȃ���w�K�����Ă݂܂��傤�B

» 2020�N07��31�� 05��00�� ���J
[���킳�������CDeep Insider�ҏW��]
�u����Ď������I�@�f�B�[�v���[�j���O�H�쎺�v�̃C���f�b�N�X

�A�ږڎ�

����̖ړI

�@�O���MNIST�̎菑����������͂���ƁA���̏��i����28�~28��784�����̃f�[�^�j��i�K�I�Ɏ����팸���Ă����Ȃ���A2�����̏��Ƃ�����ŁA��������x��784�����̃f�[�^�ւƕ�������u�I�[�g�G���R�[�_�[�v���쐬���Ă݂܂����B���̒��ŁA�I�[�g�G���R�[�_�[�̃G���R�[�_�[���ł́A���̃f�[�^����莟�����̏��Ȃ���ԁi�O��͍ŏI�I�ɂ�2������ԁj�ւƃ}�b�s���O���邱�ƁA�f�R�[�_�[���ł̓}�b�s���O���ꂽ�f�[�^����Ɍ��̏��ւƕ������邱�Ƃ����Ă��܂����B�����āA�G���R�[�_�[���ň��k���ꂽ�f�[�^�́u���f�[�^�𕜌����邽�߂ɕs�v�ȏ����폜�������́v�u���ݕϐ��ƌĂ΂��v�ł���Ƃ��������Ƃ����܂����B

�@�Ō�ɁAMNIST�̎菑�������ł͂���Ȃ�̌��ʂ��o�����u�S�����^�̃I�[�g�G���R�[�_�[�v���g���āACIFAR-10�ƌĂ΂��MNIST�������ʂ������摜�f�[�^�̃G���R�[�h�^�f�R�[�h�����܂��������������Ă݂��Ƃ���A�����Ɏ��s�������̂ł����B

�摜�̃f�R�[�h�Ɏ��s�����i����͂Ђǂ��j �摜�̃f�R�[�h�Ɏ��s�����i����͂Ђǂ��j

�@�����ŁA����͊�‚��̎�i�ŁA�O��̓_��������CIFAR-10�̉摜�f�[�^�̃G���R�[�h�^�f�R�[�h����������悤�Ɏ������Ă݂܂��傤�B

�����̑O��

�@�ǂ������CIFAR-10�̉摜�f�[�^�����܂��G���R�[�h�^�f�R�[�h�ł��邩�ɂ‚��Ă͂��낢��ƍl����_�����肻���ł��B�܂��l���Ă��������̂́A���摜�̃f�[�^�ʂ̈Ⴂ�ɂ‚��Ăł��BMNIST��CIFAR-10�̉摜�f�[�^�̑傴���ςȃt�H�[�}�b�g�͎��̂悤�ɂȂ��Ă��܂��B

  • MNIST�F28�~28�s�N�Z���A�s�N�Z�����Ƃ�0�`255�̒l
  • CIFAR-10�F32�~32�s�N�Z���A�s�N�Z�����Ƃ�0�`255��RGB�l

�@MNIST�̉摜1��������̃f�[�^�ʂ�28�~28�~1�o�C�g��784�o�C�g�ł��B����ACIFAR-10�̉摜1��������̃f�[�^�ʂ�32�~32�~3�o�C�g��3072�o�C�g�ł��B�‚܂�ACIFAR-10��MNIST�Ƃ��ׂ�ƁA�摜1��������A��4�{�̏��ʂ�����Ƃ������Ƃł��B

�@���ꂩ��AMNIST�̎菑�������̓O���C�X�P�[���Ŕw�i�����������������Ƃ��v���o���Ă��������B����ɑ΂��āACIFAR-10��32�~32�s�N�Z���̂����镔���ɏ�񂪋l�܂��Ă���_���傫�ȈႢ�Ƃ��������ł��B

MNIST�̎菑��������CIFAR-10�̉摜�f�[�^ MNIST�̎菑��������CIFAR-10�̉摜�f�[�^

�@��̉摜������΁AMNIST�̂悤�ȃf�[�^�Ȃ�2�����̃f�[�^�܂ň��k���Ă����܂����������ł����ACIFAR-10�̉摜�f�[�^��2�����܂ň��k����Ƃ����̂͂������ɖ��������肻���ł��B

�@�Ƃ����킯�ŁA�܂��͂ǂ��܂Ŏ������팸����΂悢�������ƂȂ肻���ł��B

�@���ꂩ��w�K���ǂ��܂Ői�߂邩�Ƃ����b������܂��B�ȒP�ɂ����΁A�u���k��̃f�[�^�̎����������͏\����������Ȃ�����ǁA�w�K������Ă��Ȃ�����A���܂��G���R�[�h�^�f�R�[�h�ł��Ȃ��v�Ƃ������ԂɊׂ�”\�������肻���ł��BMNIST�̎菑����������������I�[�g�G���R�[�_�[�ł̓G�|�b�N����100�Ƃ��Ă��܂������ACIFAR-10�ł͂�葽���̃G�|�b�N���w�K����K�v�����邩������܂���B

�@�ȏ��2�_�ɂ‚��čl���Ȃ���A�ǂ��ɂ�CIFAR-10�̉摜�f�[�^�������ł���I�[�g�G���R�[�_�[�����������邱�Ƃɂ��܂��傤�B

�R�[�h�ɂ‚���

�@������ȉ��̂悤�Ȋ֐���N���X���`���܂��B

  • imshow�֐��F�O��Ɠ��l
  • train�֐��F�O��Ɠ��l
  • AutoEncoder2�N���X�F�G���R�[�_�[�ƃf�R�[�_�[���v���K�u���ɕύX

�@���̑��ɂ��K�v�ȃp�b�P�[�W�⃂�W���[���̃C���|�[�g�A�f�[�^�Z�b�g�ǂݍ��݂ƃf�[�^���[�_�[�̒�`���s���R�[�h�Ȃǂ�����܂��B�����̃R�[�h��imshow�֐���train�֐��ɂ‚��Ă͈ȉ��ɂ܂Ƃ߂Ď����܂��itrain�֐��͑O�񂩂獱�ׂȏC���_������܂����A����ɂ‚��Ă͐������ȗ����܂��j�B�܂��A����̃R�[�h�����̃m�[�g�u�b�N�Ō��J���Ă���̂ŕK�v�ɉ����ĎQ�Ƃ��Ă��������B

import torch
from torch.utils.data import DataLoader
import torchvision
from torchvision import transforms
from torchvision.datasets import CIFAR10
import numpy as np
import matplotlib.pyplot as plt

def imshow(img):
    img = torchvision.utils.make_grid(img)
    img = img / 2 + 0.5
    npimg = img.detach().numpy()
    plt.imshow(np.transpose(npimg, (1, 2, 0)))
    plt.show()

def train(net, criterion, optimizer, epochs, trainloader, input_size):
    losses = []
    output_and_label = []

    for epoch in range(1, epochs+1):
        print(f'epoch: {epoch}, ', end='')
        running_loss = 0.0
        for counter, (img, _) in enumerate(trainloader, 1):
            optimizer.zero_grad()
            img = img.reshape(-1, input_size)
            output = net(img)
            loss = criterion(output, img)
            loss.backward()
            optimizer.step()
            running_loss += loss.item()
        avg_loss = running_loss / counter
        losses.append(avg_loss)
        print('loss:', avg_loss)
        output_and_label.append((output, img))
    print('finished')
    return output_and_label, losses

���‚��̃R�[�h�̊F����

�@���ɃI�[�g�G���R�[�_�[����������AutoEncoder2�N���X���ȉ��Ɏ����܂��B

class AutoEncoder2(torch.nn.Module):
    def __init__(self, enc, dec):
        super().__init__()
        self.enc = enc
        self.dec = dec
    def forward(self, x):
        x = self.enc(x)
        x = self.dec(x)
        return x

AutoEncoder2�N���X

�@�O���__init__���\�b�h���ŁA�ʓr��`����Encoder�N���X��Decoder�N���X�̃C���X�^���X�𐶐����Ă��܂������A����̓C���X�^���X�������Ƀp�����[�^�[enc�ɃG���R�[�_�[�ƂȂ�I�u�W�F�N�g���A�p�����[�^�[dec�Ƀf�R�[�_�[�ƂȂ�I�u�W�F�N�g���󂯎��A�������C���X�^���X�ϐ��ɕۑ����āAforward���\�b�h�ł͂������Ăяo�������Ƃ��Ă��܂��B��������΁A�O���ŃG���R�[�_�[�ƃf�R�[�_�[�̃C���X�^���X�����R�ɐ������āA�������I�[�g�G���R�[�_�[�ɓn����悤�ɂȂ�܂��B

�@�G���R�[�_�[��f�R�[�_�[�͗Ⴆ�΁A���̂悤��PyTorch��Sequential�N���X�itorch.nn.Sequential�N���X�j�𗘗p���č쐬���邱�Ƃɂ��܂����BSequential�N���X�́A���̃C���X�^���X�������Ɉ����Ɏw�肵���j���[�����l�b�g���[�N���W���[�����i�[����R���e�i�ƂȂ�܂��i�����Ă݂�΁A�Ǝ��̃N���X���`���āA����__init__���\�b�h�ŕK�v�Ȃ��̂��C���X�^���X������̂ł͂Ȃ��A���̏ꂻ�̏�ŕK�v�Ȃ��̂��g���āA�G���R�[�_�[�ƃf�R�[�_�[��g�ݗ��Ă銴���ł��j�B

input_size = 3 * 32 * 32

encoder = torch.nn.Sequential(
    torch.nn.Linear(input_size, input_size // 4),
    torch.nn.ReLU(),
    torch.nn.Linear(input_size // 4, input_size // 12),
    torch.nn.ReLU(),
    torch.nn.Linear(input_size // 12, input_size // 24)
)

decoder = torch.nn.Sequential(
    torch.nn.Linear(input_size // 24, input_size // 12),
    torch.nn.ReLU(),
    torch.nn.Linear(input_size // 12, input_size // 4),
    torch.nn.ReLU(),
    torch.nn.Linear(input_size // 4, input_size),
    torch.nn.Tanh()
)

net = AutoEncoder2(encoder, decoder)

�G���R�[�_�[�ƃf�R�[�_�[�̃I�u�W�F�N�g���쐬���āA������g����AutoEncoder2�N���X�̃C���X�^���X�𐶐�

�@�ϐ�input_size�ɂ͏�ŏq�ׂ�CIFAR-10�̉摜�f�[�^�̃T�C�Y�i�������j�������Ă��܂��B���̌オ�G���R�[�_�[�ƃf�R�[�_�[�ƂȂ�I�u�W�F�N�g��Sequential�N���X���g���Đ������Ă���R�[�h�ł��Bencoder�I�u�W�F�N�g�ɂ́Ainput_size��4����1�A12����1�A24����1�Ƃ�����ɒi�K�𓥂�Ŏ������팸���Ă��܂��Bdecoder�͂��̋t���s���Ă��܂��i�������֐��̃C���X�^���X��Sequential�N���X�̃C���X�^���X�ɂ͊܂܂�Ă���_�ɂ����ӂ��Ă��������B�������邱�ƂŁAAutoEncoder2�N���X��forward���\�b�h�ł́A���ꂼ��̃C���X�^���X�ɓ��͂������n�������ōςނ悤�ɂȂ��Ă��܂��j�B

�@�팸��̃f�[�^��3072��24��128�����ɂȂ�Ƃ������Ƃł��BMNIST�̎菑�����������������Ƃ��ɂ́A�ŏI�I��2�����Ɉ��k���Ă������Ƃ��l����ƁA���������Ȃ葽���悤�ȋC�����܂����A�͂Ă��Ă��܂������̂ł��傤���B

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright© Digital Advantage Corp. All Rights Reserved.

�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

4AI by ��IT - AI�����A�������A���A������
Microsoft �� Windows�őO��2025
AI for �G���W�j�A�����O
���[�R�[�h�^�m�[�R�[�h �Z���g���� by ��IT - IT�G���W�j�A���r�W�l�X�̒��S�Ŋ��􂷂�g�D��
Cloud Native Central by ��IT - �X�P�[���u���Ȕ\�͂�g�D��
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B