2022.03.26_Sat

3593 단어 CNNCNN

Today I learned

1. CNN 이해 : CNN의 구성요소, 대표 layer목적(역할)에 대해 이해

2. EffNet B7 architecture 이해를 위한 SE Net 논문 공부 & SE Net architecture 분석 -> 다 못 끝냄

3. 서버에 업로드된 파일(ex. 이미지 xml) 로컬에 다운받는 방법 배움

def download(file_name, url):
    with open(file_name, 'wb') as file:
        req = requests.get(url, allow_redirects=True)
        file.write(req.content)
        
import requests
for i in range(20):

    url = f"https://xml url/{i}.png"
    file_name = download(url.split('/')[-1], url)

궁금해서 찾아본 것

  • EffNet 에서 SE Net block 구조를 차용했는데, 각 layer에 대한 역할

  • 위 이미지에서 se block = Global pooling, FC, ReLU, FC, sigmoid 일 때
    아래 코드에서 =>
    block1a_se_squeeze (GlobalAveragePooling2D) = Global pooling
    block1a_se_reshape (Reshape) = FC
    block1a_se_reduce (Conv2D) = ReLU
    block1a_se_expand (Conv2D) = FC
    block1a_se_excite (Multiply) = sigmoid
    으로 봐도 되는지?

  • convolution 연산과정 직접 계산해보기 (밑바닥부터 시작하는 딥러닝 참고)
    위 se block에서 Ftr() 식이 단순 convolution이라고 설명되므로, convolution에 대한 이해 필요

  • 모델 변형 아이디어
    relu가 특정 범위로 값을 제한하는 역할을 할 때, 각 범위에 따라 모델 성능에 영향을 준다면, 연구실 과제 아이디어로 활용할 수 있음

block1b_se_squeeze (GlobalAver  (None, 32)          0           ['block1b_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block1b_se_reshape (Reshape)   (None, 1, 1, 32)     0           ['block1b_se_squeeze[0][0]']     
                                                                                                  
 block1b_se_reduce (Conv2D)     (None, 1, 1, 8)      264         ['block1b_se_reshape[0][0]']     
                                                                                                  
 block1b_se_expand (Conv2D)     (None, 1, 1, 32)     288         ['block1b_se_reduce[0][0]']      
                                                                                                  
 block1b_se_excite (Multiply)   (None, 300, 300, 32  0           ['block1b_activation[0][0]',     
                                )                                 'block1b_se_expand[0][0]']     

notion link

  1. cnn
    https://www.notion.so/CNN-Convolutional-Neural-Network-53e9b9911db14876b3281a9621712946
  2. se net : squeeze-and-exitation networks
    https://www.notion.so/Squeeze-and-Excitation-Networks-36bddaf007e64c8eba03661b6e1fc235
  3. https://www.notion.so/EffNet-B7-code-_2022-03-26-27-aed796d1a67842ccbd3dbb3a0b84923a

오늘 하루 느낀 점

신경망, convolution 등 딥러닝에 기초 개념에 대한 이해가 아직 많이 부족하다는 것을 느꼈고, 논문을 읽으며 모르는 것이 나올 때마다 잘 정리하고 기록해둬야겠다고 느꼈다.
밑바닥부터 시작하는 딥러닝(Deep Learning from scratch

block1a_se_reduce가 relu layer(se)가 맞다면 처음 block1a(b,c,d)에서는 1/4, block2a(b,c,d)에서는 1/24로 축소되는데,
1. 논문에선 파라미터값을 어떤 값으로 줬는지,
2. relu로 설정한 이유가 있는지,
3. 값을 변형할 수 있는지 보고, 연구실 classification과제에 적용해봐야겠다.

좋은 웹페이지 즐겨찾기