반응형

파이토치 51

[논문 구현] PyTorch로 EfficientNet(2019) 구현하고 학습하기

이번에 구현해볼 모델은 EfficientNet(2019) 입니다. EfficientNet은 강화학습으로 최적의 모델을 찾는 MnasNet의 구조를 사용합니다. MnasNet 구조에서 compound scaling을 적용하여 성능을 끌어올린 것이 EfficientNet입니다. compound scaling은 width, deepth, resolution 3가지 요소의 관계를 수식으로 정의해서 주어진 연산량에 맞게 효율적으로 width, deepth ,resolution를 조절하는 방법입니다. 자세한 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] EfficientNet(2019) 리뷰, Rethinking Model Scaling for Convolutional Neural Network..

논문 구현 2021.03.30

[논문 구현] PyTorch로 SENet(2018) 구현하고 학습하기

안녕하세요. 파이토치로 SENet을 구현하고 학습해보도록 하겠습니다. SENet은 SEBlock을 제안한 신경망입니다. SEBlock은 피쳐맵의 채널별 가중치를 계산하고, 이 가중치를 residual unit의 출력 피쳐맵에 곱해줍니다. 이 방법으로 모델의 성능을 개선할 수 있었습니다. SEBlock의 장점은 CNN 구조라면 어떤 모델이든지 사용할 수 있다는 점입니다. resnet, mobilenet, efficientnet 등등 여러 모델에 부착하여 사용할 수 있습니다. 자세한 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] SENet(2018) 리뷰, Squeeze-and-Excitation Networks 이번에 읽어볼 논문은 SENet, Squeeze-and-Excitation ..

논문 구현 2021.03.30

[PyTorch] torch.bernoulli 를 활용한 Stochastic depth 학습

안녕하세요! torch.bernoulli 함수를 활용해서 Stochastic depth 학습 하는 법을 알아보겠습니다. 이 포스팅은 stochastic depth 학습을 구현하는 법을 잊을까봐 기록합니다. 아래 class는 efficientnet에서 사용하는 bottlenet 입니다. class BottleNeck(nn.Module): expand = 6 def __init__(self, in_channels, out_channels, kernel_size, stride=1, se_ratio=4, p=0.5): super().__init__() self.p = torch.tensor(p).float() if stride == 1 else torch.tensor(1).float() self.residual..

[논문 구현] PyTorch로 ResNext(2017) 구현하고 학습하기

안녕하세요! 이번 포스팅에서는 ResNext(2017)을 구현하고 학습까지 해보도록 하겠습니다. 작업 환경은 Google Colab에서 진행했습니다. ResNext는 Group Convolution을 제안한 논문입니다. Group Convolution을 활용하면, Conv 연산에서 필요한 연산량이 감소하게 되어서, 동일한 연산량 내에 더 많은 피쳐맵을 활용할 수 있는 이점이 있습니다. ResNext에서 사용하는 Group Convolution이 현재 최신 모델까지 이용하고 있는 것을 보면 영향력이 대단한 것 같네요ㅎㅎ 아래 포스팅에서 논문 리뷰를 확인하실 수 있습니다. [논문 읽기] ResNext(2017) 리뷰, Aggregated Residual Transformations for Deep Neura..

논문 구현 2021.03.29

[PyTorch] Swish 활성화 함수 정의해서 사용하기

안녕하세요! PyTorch로 Swish 함수를 정의해서 사용하는 법을 알아보겠습니다ㅎㅎ Swish 함수는 깊은 신경망에서 ReLU보다 좋은 성능을 나타내는데요, 실제로 EfficientNet은 Swish 활성화 함수를 사용하고 MobileNetV3은 Swish 함수를 수정해서 h-Swish 함수를 사용하고 있습니다. 이 Swish 함수는 파이토치 공식 문서에서 명령어를 제공하고 있지 않아 직접 정의해서 사용해야 합니다. 아래와 같이 Swish 함수 클래스를 정의할 수 있습니다. # Swish activation function class Swish(nn.Module): def __init__(self): super().__init__() self.sigmoid = nn.Sigmoid() def forwa..

[논문 구현] PyTorch로 Residual Attention Network(2017) 구현하고 학습하기

이번에 공부해볼 모델은 Residual Attention Network입니다. Pytorch로 구현하고, STL-10 dataset으로 학습까지 진행하겠습니다. 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] Residual Attention Network(2017) 리뷰 안녕하세요! 이번에 소개할 논문은 Residual Attention Network 입니다. Residual Attention Network는 자연어 처리에서 활발하게 이용하고 있는 Attention에서 영감을 받아 탄생한 모델입니다. 실제 Attentio.. deep-learning-study.tistory.com 전체 코드는 여기에서 확인하실 수 있습니다. 1. 데이터셋 불러오기 데이터셋을 불러오기 전에 colab에..

논문 구현 2021.03.27

[논문 구현] PyTorch로 MobileNetV1(2017) 구현하고 학습하기

안녕하세요! 이번에 PyTorch로 구현해볼 모델은 MobileNetV1 입니다. MobileNetV1은 모델 경량화를 위해 Depthwise separable convolution을 활용하여 연산량을 감소한 모델입니다. 자세한 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] MobileNet(2017) 리뷰, Efficient Convolutional Neural Networks for Mobile Vision Applications 이번에 읽어볼 논문은 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application 입니다. MobileNet은 Depthwise separable convolution을..

논문 구현 2021.03.23

[논문 구현] PyTorch로 Xception(2017) 구현하고 학습하기

안녕하세요! 이번에 구현해볼 모델은 Xception(2017) 입니다. 작업 환경은 google colab에서 진행했습니다. Xception은 Depthwise separable convolution을 활용해 연산량을 줄인 만큼 층을 깊게 쌓은 모델인데요. 자세한 논문 리뷰는 아래 게시글에서 확인하실 수 있습니다! [논문 읽기] Xception(2017) 리뷰, Deep Learning with Depthwise Separable Convolutions 이번에 읽어볼 논문은 Xception: Deep Learning with Depthwise Separable Convolutions 입니다. Xception은 Inception 모듈에 대한 고찰로 탄생한 모델입니다. Xception은 완벽히 cross-c..

논문 구현 2021.03.23

[논문 구현] PyTorch로 PreAct-ResNet(2016) 구현하고 학습하기

이번에 구현해볼 모델은 PreAct-ResNet입니다. 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] Pre-Activation ResNet(2016) 리뷰, Identity Mappings in Deep Residual Networks 이번에 소개할 논문은 Pre-Activation ResNet, Identity Mappings in Deep Residual Networks 입니다. ResNet은 skip connection을 활용해 신경망이 수렴이 잘 되도록 하여 층을 깊게 쌓아 정확도를 높인 모델.. deep-learning-study.tistory.com 전체 코드는 여기에서 확인하실 수 있습니다. 1. 데이터셋 불러오기 데이터셋은 torchvision 패키지에서 제공하는 ST..

논문 구현 2021.03.20

[논문 구현] PyTorch로 InceptionV4(2016) 구현하고 학습하기

이번 포스팅에서는 InceptionV4를 파이토치로 구현하고, 학습까지 진행해보겠습니다. 구현할 모델은 InceptionV4에 residual block을 사용하는 Inception-ResNet-V2 입니다. 작업 환경은 구글 코랩에서 진행했습니다. 논문 리뷰는 여기에서 확인하실 수 있습니다. [논문 읽기] Inception-v4(2016) 리뷰, Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 이번에 소개할 논문은 2017년에 나온 Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 입니다. 저자는 Szegedy..

논문 구현 2021.03.20
반응형