2022.03.26_Sat
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
- cnn
https://www.notion.so/CNN-Convolutional-Neural-Network-53e9b9911db14876b3281a9621712946
- se net : squeeze-and-exitation networks
https://www.notion.so/Squeeze-and-Excitation-Networks-36bddaf007e64c8eba03661b6e1fc235
- https://www.notion.so/EffNet-B7-code-_2022-03-26-27-aed796d1a67842ccbd3dbb3a0b84923a
오늘 하루 느낀 점
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]']
https://www.notion.so/CNN-Convolutional-Neural-Network-53e9b9911db14876b3281a9621712946
https://www.notion.so/Squeeze-and-Excitation-Networks-36bddaf007e64c8eba03661b6e1fc235
신경망, 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과제에 적용해봐야겠다.
Author And Source
이 문제에 관하여(2022.03.26_Sat), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@grovy52/2022.03.26Sat저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)