CIFAR-10�̉摜�f�[�^�̃G���R�[�h�^�f�R�[�h�����܂��s�����߂ɁA���k��̎������ƃG�|�b�N����ω������Ȃ���w�K�����Ă݂܂��傤�B
�@�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
�@�����ŁA����͊���̎�i�ŁA�O��̓_��������CIFAR-10�̉摜�f�[�^�̃G���R�[�h�^�f�R�[�h����������悤�Ɏ������Ă݂܂��傤�B
�@�ǂ������CIFAR-10�̉摜�f�[�^�����܂��G���R�[�h�^�f�R�[�h�ł��邩�ɂ��Ă͂��낢��ƍl����_�����肻���ł��B�܂��l���Ă��������̂́A���摜�̃f�[�^�ʂ̈Ⴂ�ɂ��Ăł��BMNIST��CIFAR-10�̉摜�f�[�^�̑傴���ςȃt�H�[�}�b�g�͎��̂悤�ɂȂ��Ă��܂��B
�@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
�@��̉摜������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
�@������ȉ��̂悤�Ȋ���N���X���`���܂��B
�@���̑��ɂ��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
�@���Ƀ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
�@�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)
�@�ϐ�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
Copyright© Digital Advantage Corp. All Rights Reserved.