• 티스토리 홈
  • 프로필사진
    Cat_Code
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Cat_Code
  • 프로필사진
    Cat_Code
    • 분류 전체보기 (117)
      • [네이버 부스트캠프] (46)
        • ⭐주간 학습 정리 (43)
        • 🎶추가 학습 정리 (3)
      • [연습의 흔적들] (27)
        • 백준⚾ (26)
        • 캐글 & 데이콘 🤝 (1)
      • [ML] (23)
        • 머신러닝 💕 (5)
        • 딥러닝 🔫 (10)
        • 데이터 분석 🖤 (1)
        • 수학 ☑️ (4)
        • LLM🦜 (3)
      • [CS] (17)
        • 파이썬 🖤 (13)
        • 해체 분석기📝 (3)
        • Service Product (1)
        • MultiMedia (0)
      • [개발일지] (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [논문 구현] 근본을 찾아서... 0. LeNet-5 (GradientBased Learning Applied to DocumentRecognition)
        2022년 12월 05일
        • Cat_Code
        • 작성자
        • 2022.12.05.:41

        오늘은 "특별히" CNN 모델의 근본인 LeNet5를 Pytorch를 활용해서 구현해볼려고 합니다

        최근 머신러닝을 sklearn없이 구현하고 있는 개인만의 프로젝트를 하고 있는데 추가 적인 개인 프로젝트로 DL 모델들로 직접 구현해보려고 한다 


        논문 링크 : http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf

         

        오늘 구현해볼 논문은 98년도에 나온 CNN의 아버지 LeNet-5이다 (근본 중에 근본)

         

        LeNet- 5 기본 구조 (LeNet-5 Architecture)

        98년도에 나온 모델이므로 구조는 상당히 단순하다

         

         *전체적인 구조*

         3개의 Convolutions layer - 2개의 Subsampling layer - 1개의 fc레이어

        [활성화 함수로는 tahn을 사용한다]

         

         

        DATA INPUT : input size = 32x32x1 (채널이 1개인 이유 : 사용된 데이터가 MNIST로 1개의 채널만 갖고 있다)

        Convolutions1 : 28x28x6 (28x28사이즈, 6개의 커널)

        Subsampling layer 2 : 14x14x6 (14x14사이즈, 6개의 커널)

        Convolutions3 : 10x10x16 (10x10사이즈, 16개의 커널)

        Subsampling layer 4 : 5x5x16 (5x5사이즈, 16개의 커널)

        Convolutions5 :120 (120사이즈 - FC레이어 시작)

        F6 : 84 (84사이즈)

        ouput : 10 (10개로 분류 0~9까지 숫자)

         

        subsampling은 사실상 pooling으로 특성맵을 축소한다

        여기서 사용되는 풀링은 평균 풀링average pooling으로 stride를 2로 설정한다

         

         

        Convolution Layer 출력 데이터 크기 계산 공식

        OutputH : (H + 2P -FH) / S + 1

        OuputW : (W + 2P -FW) / S + 1

        이를 적용해서 계산하면 위의 모델의 레이어 출력 값이 나온다

         

        H == 입력데이터 Height

        P == padding 사이즈 (여기서 padding은 사용되지 않는다)

        FH == filter(커널) height

        FW == filter(커널) width

        S == stride

         

         

        코드로 구현한 LeNet-5
        import torch
        import torch.nn as nn
        import torch.nn.functional as F
        
        #using_Data is MNIST
        
        class LeNet5(nn.Module):
        
            def __init__(self):
                super(LeNet5, self).__init__()
                self.c1 = nn.Conv2d(1, 6, kernel_size=5)
                self.c2 = nn.Conv2d(6, 16, kernel_size=5)
                self.c3 = nn.Conv2d(16, 120, kernel_size=5)
                self.fc1 = nn.Linear(120, 84)
                self.fc2 = nn.Linear(84, 10)
        
            def forward(self, x):
                x = F.tanh(self.c1(x))
                x = F.avg_pool2d(x, 2)
                x = F.tanh(self.c2(x))
                x = F.avg_pool2d(x, 2)
                x = F.tanh(self.c3(x))
                x = torch.flatten(x, 1)
                x = F.tanh(self.fc1(x))
                x = self.fc2(x)
                return x

         

        학습코드와 데이터 및 전체 코드는 아래 링크에 첨부👇

         

        GitHub - Eumgill98/DL: 딥러닝 모델 학습 ing

        딥러닝 모델 학습 ing. Contribute to Eumgill98/DL development by creating an account on GitHub.

        github.com

         

        '[ML] > 딥러닝 🔫' 카테고리의 다른 글

        [논문 리뷰] CutMix : Regularization Strategy to Train Strong Classifiers with Localizable Features  (2) 2023.03.05
        [딥러닝]활성화 함수 (Activation)  (0) 2023.01.11
        [딥러닝]규제 Regularization  (0) 2023.01.05
        [딥러닝] 옵티마이저 (Optimizer)  (0) 2023.01.04
        [논문 리뷰-CNN] 1. ImageNet Classification with Deep Convolutional Neural Networks (AlexNet)  (0) 2022.11.23
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바