오토인코더를 사용하여 이미지를 256차원 벡터로 압축하고, 유사한 이미지를 검색하는 프로젝트입니다.
- Encoder: 224x224 이미지 → 256차원 벡터
- Decoder: 256차원 벡터 → 224x224 이미지
- 구조: Conv2d 기반 CNN (GELU 활성화)
- Batch size: 64
- Epochs: 50
- Optimizer: Adam (lr=0.001)
- Loss: MSELoss
# 모델 학습
model = Autoencoder(num_input_channels=3, base_channel_size=64, latent_dim=256)
train(model, criterion, optimizer, trn_loader, test_loader, device, num_epochs=50)
# 유사 이미지 검색
test_images, test_embeds = get_embed(model, test_loader)
find_similar_images(test_images[0], test_embeds[0], test_images[1:], test_embeds[1:], k=7)PyTorch, torchvision, PIL, Matplotlib