SENet의 기본 아이디어를 간단하게 리뷰하고 ResNet101에 붙여보는 식으로 구현하려고 한다. 기본 ResNet101 구현은 다음 글을 참고하면 된다. 1. Idea SENet의 구조는 다음 그림으로 모든게 설명이된다. 각 채널별로 중요도(논문에서는 response, attention 등을 언급한다.)가 있어서 이를 계산하는 구조로 설계했다. 논문에서는 channel간 relationship에 focus를 두어 representation quality 향상을 목적으로 설계했다고 한다. feature map의 채널간 interdependency를 모델링하여 attention 처럼 계산하여 채널간 가중치를 부여하여 계산하는 방식을 택한다. 위의 그림을 설명하면 다음과 같다. input $X$ ($C`x..
논문에서 제시한 내용만 보고 구현한 코드 약간의 Naive한 점이 있지만 확실히 ResNet 등의 CNN 모델보다 학습속도가 빠르다! 그럼 바로 시작 1. Setup 기존과 동일하다. import torch.nn as nn import torch import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as optim import time import numpy as np import random import torch.backends.cudnn as cudnn seed = 2022 torch.manual_seed(seed) torch.cuda...
V1에서 달라진 점과 Architecture 중심으로 이야기를 하려고 한다. 0. Abstract MobileNet V2는 Bottleneck 간 skip-connection과 Inverted Residual Structure를 바탕으로 설계되었다. Block 안 expansion layer는 lightweight depthwise conv를 사용한다.(MobileNet v1과 같다.) 또한 representational power를 유지하려면 narrow layers에선 non-linearities를 제거하는 것이 중요하며 이를 실험적으로 확인했다. 이러한 아이디어를 바탕으로 실험한 결과 성능향상을 확인할 수 있었다. 1. Intro 현재 SOTA 모델들은 높은 computational cost(res..
이번에는 ShuffleNet v1을 직접 구현해보았다. 확실히 MobileNet v1과 비교했을 때 비슷한 학습속도에서 높은 성능을 보여줌을 확인할 수 있었다. 1. Setup 이전 구현들과 같다. import torch.nn as nn import torch import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as optim import time import numpy as np import random import torch.backends.cudnn as cudnn seed = 2022 torch.manual_seed(seed) tor..
이번에는 MobileNet V1을 직접 구현해보았다. 확실히 ResNet, VGGNet보다 학습속도가 빠르다는 것을 확인할 수 있었다. 1. Setup 이전 구현과 똑같이 세팅을 했다. import torch.nn as nn import torch import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as optim import time import numpy as np import random import torch.backends.cudnn as cudnn seed = 2022 torch.manual_seed(seed) torch.cuda..
이번 글에서는 ShuffleNet논문을 간단하게 리뷰해보려 한다. Intro와 Architecture 중심으로 작성해보겠다. 0. Abstract 이 논문에서는 Mobile 장치에 특화된 extremely computation-efficient CNN인 ShuffleNet을 소개한다. ShuffleNet은 Channel shuffle과 pointwise group convolution operation을 이용하여 computation cost는 낮추면서도 accuracy는 유지하여 MobileNet보다 더 좋은 효율을 보여준다. 1. Intro 현재 트렌드는 CNN을 더 깊게, 더 크게 design하여 성능을 올리는 것이다. 하지만 현재 SOTA 모델들은 layer도 수백개, channel은 수천개에 달..