전체 글(79)
-
[논문 리뷰] Pix2Pix: Image-to-Image Translation with CGAN
이번 논문 리뷰는 GAN 논문 중에서도 많은 인용 수를 자랑하는 Pix2Pix이다. Conditional Generative Adversarial Network(CGAN)을 사용하여 한 이미지를 다른 domain(style)의 이미지로 변환하는 방법을 제안하였고 기존의 방식들은 특정 task마다 loss나 architecture를 specific하게 design해주었던 것과 달리 하나의 structure를 사용하여 모든 tasks에 적용할 수 있도록 base model을 제공했다는 점이 큰 contribution이라고 할 수 있다. 1. Problems of Tranditional methods Computer vision에는 무수한 task들이 존재하는데, 많은 문제들을 input image를 어떠한 ..
2022.05.22 -
[논문 리뷰] Tokens-to-Token ViT
이번에 소개할 논문은 Tokens-to-Token ViT라는 논문이다. https://arxiv.org/abs/2101.11986 Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet Transformers, which are popular for language modeling, have been explored for solving vision tasks recently, e.g., the Vision Transformer (ViT) for image classification. The ViT model splits each image into a sequence of tokens with fixed length and ..
2022.05.05 -
[논문 리뷰] Not all images are worth 16x16 words
이번에 소개할 논문은 제목에서 알 수 있듯이, 모든 이미지를 똑같은 patch size로 나눌 필요가 없다!라는 주제를 가지고 있다. ViT는 patch size를 달리하였을 때 더 많은 tokens이 만들어졌을 때 더 높은 성능을 보여주나 computational cost가 급격하게 증가하는 단점을 가지고 있다. 저자는 이미지가 저마다 가지고 있는 특성이 다르기 때문에 각각에 대해서 token의 개수를 dynamic하게 정해줌으로써 위와 같은 문제점을 완화할 수 있다고 주장한다. 본 논문으로 들어가보자! https://arxiv.org/abs/2105.15075 Not All Images are Worth 16x16 Words: Dynamic Transformers for Efficient Image ..
2022.05.05 -
[논문리뷰] Attention Augmented Convolutional Networks
1. Introduction 1.1 Convolutional Neural Network(CNN) CNN은 computer vision에서 높은 성능을 보여주면서 dominant한 mechanism으로 자리잡았다. 이렇게 CNN이 이미지 task에최적화된 성능을 낼 수 있는 이유는 1) 일정 크기의 kernel을 통한 sliding 방식으로 receptive field를 제한하여 "locality"를 가지는 점과 2) weight sharing을 통한 translation equivariance 특성이 있다. 하지만 이러한 convolutional kernel의 locality로 인해서 이미지의 global contexts를 잡아내기 힘들다는 단점도 존재한다. >> locality가 좋은 이유는 어떠한 ..
2022.03.24 -
[Pytorch] Multi-gpu 사용하기
이번에 pytorch로 multi-gpu를 사용할 일이 생겨서 알아보게 되었다. 방법은 매우 간단하니 한번 살펴보자! ㅎㅎ NGPU = torch.cuda.device_count() device = torch.device("cuda" if torch.cuda.is_available() else "cpu") if NGPU > 1: self.model = torch.nn.DataParallel(self.model, device_ids=list(range(NGPU))) torch.multiprocessing.set_start_method('spawn') self.model.to(device) 간단하게 살펴보면 torch.cuda.device_count()는 현재 할당된 gpu 개수를 의미한다. 따라서 이 개수..
2022.03.23