[Python] CNN

Jae Gyeong Lee·2022년 12월 17일
0

  • LeNet-5는 Convolution layer 3개, Subsampling layer 2개, Fully connected layer 1개로 구성.

'''
def init(self):
super(Net, self).init()

    # 1. C1+S2
    
	#Layer C1: 5x5 크기의 kernel 6개와 stride=1을 지닌 convolutional layer; stride=1 default.
    self.conv1 = nn.Conv2d(3, 6, 5) #conv layer 생성1

    '''
    3은 input 이미지의 채널, 여기서는 color니까 3임.
    6은 output 채널.
    5는 kernal의 size.
    '''
           		
	#Layer S2: 2x2 크기의 kernel(6개)와 stride=2을 지닌 subsampling layer; padding=0 default
    self.pool = nn.MaxPool2d(2, 2) #maxpooling 생성
    #앞에 2는 kernal의 size
    #뒤에 2는 stride의 size



    # 2. C3+S4
    
	#Layer C3: 5x5 크기의 kernel 16개와 stride=1을 지닌 convolution layer 
    self.conv2 = nn.Conv2d(6, 16, 5) #conv layer 생성2

	#Layer S4: 2x2 크기의 kernel 16개와 stride=2을 지닌 subsampling layer
	self.pool = nn.MaxPool2d(2, 2) #maxpooling 생성


	
    # 3. C5+F6
    
	#Layer C5: 5x5 크기의 kernel 120개와 stride=1을 지닌 convolutional layer 
	self.conv3 = nn.Conv2d(16, 120, 5) #conv layer 생성2

    # self.fc1 = nn.Linear(16 * 5 * 5, 120) #fully connected layer1
	
	#Layer F6: fully-connected layer
    self.fc1 = nn.Linear(120, 84) #fully connected layer
    #120은 input feature 
    #84는 output feature
    
    # Output layer
    self.fc2 = nn.Linear(84, 10) #class가 10개라 마지막(output)이 10
    #84은 input feature 
    #10은 output feature

'''

https://d2l.ai/chapter_convolutional-neural-networks/lenet.html
https://m.blog.naver.com/ckdgus1433/221406102936
https://deep-learning-study.tistory.com/503
https://ctkim.tistory.com/119

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글