inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

딥러닝 CNN 완벽 가이드 - TFKeras 버전

안녕하세요 모델 Conv2D 연산에서 activation을 안할 때의 경우는 언제인가요?

247

유영재

작성한 질문수 44

0

안녕하세요 CNN 강의를 꾸준히 들으면서 이에 대한 이론을 바탕으로 중간에 다른 코드들을 살펴보고 있는 중입니다

model = Sequential([
    Conv2D(16,(3,3), strides = 3, input_shape = img_shape),
    MaxPooling2D(),
    Conv2D(32, (3,3),strides=2),
    
    MaxPooling2D(),
    Conv2D(64, (3,3)),
    MaxPooling2D(),
    Conv2D(64,(3,3)),
    MaxPooling2D(),
    Flatten(),
    Dropout(0.5),
    Dense(256, activation = 'relu'),
    Dropout(0.5),
    Dense(9, activation = 'softmax')
])
model.summary()

그런데 위와 같은 코드에서 궁금한 점이 생겼습니다. 이미지는 약 (500, 400)의 사이즈를 가지고 있습니다. 궁금한 점이 Feature Extracter 부분의 Conv2D 연산 때 activation 적용을 하지 않고 마지막 classify 때만 activation을 적용하는데, 레이어 층이 작아서 마지막에 한 번만 activation을 하면 되어서 그런 것인가요? 어떤 상황에서 activation을 하지 않고 넘어가는지 그러한 부분이 궁금합니다. 감사합니다

activatio keras conv2D 딥러닝 머신러닝 배워볼래요? kaggle tensorflow cnn

답변 3

0

권 철민

해당 커널이 원본 이미지가 아니라 이미 Segmentation 되어 있는 이미지를 이용하는 군요.  이유는 잘 모르겠지만 Segmentation 된 이미지에 저런 코드를 사용해서 classification을 적용하는것은 저도 처음 알았습니다.

아래는 해당 커널을 copy해서 input image를 확인해 본 코드입니다. 해당 커널을 copy and edit하고 아래 코드를 실행해 보시면 segmentation image가 나옵니다.

import cv2
import matplotlib.pyplot as plt

img = cv2.cvtColor(cv2.imread('../input/a-large-scale-fish-dataset/Fish_Dataset/Fish_Dataset/Hourse Mackerel/Hourse Mackerel GT/00002.png'),
                  cv2.COLOR_BGR2RGB)
plt.imshow(img)

하지만 원본 컬러 이미지라면 해당 코드가 성능이 잘 안 나올 것 같습니다. 함 테스트 해보시지요.

0

유영재

https://www.kaggle.com/tuqayabdullazade/fish-species-classification-99-2-accuracy?select=Segmentation_example_script.m

캐글에서 이미지 분류 문제를 찾아보다가 참고용으로 본 코드에서 다음과 같이 접근하더라구요

0

권 철민

안녕하십니까,

어디에 쓰인 모델 코드인지 알수 있을 까요? 일반적인 image Classification 코드인것 처럼 보이는데 activation을 Conv이후에 적용하지 않은 것은 저도 어떤 코드인지 짐작이 안가는군요.

일반적으로 Image Classification의 경우는 Conv2D이후에 대부분 Activation을 적용합니다만Resnet의 Residual block같은 경우는 Skip connection으로 합해주기 전에 Activation을 하지 않은 상태로 합해줍니다. 하지만 MaxPooling이 있는 걸로 보아 Residual Block은 아니군요.

어떤 자료(또는 인터넷 주소)에서 가져오신 코드인지 말씀해주시겠습니까?

resize 질문

0

60

1

20251212 Kaggle 런타임에 scikit-learn 설치 실패 트러블 슈팅

0

86

1

Loss와 매트릭 관계

0

75

2

Boston 코랩 실습

0

170

2

배치 정규화의 이해와 적용 2 강의 질문

0

143

2

Augmentation원본에 적용해서 데이터 갯수 자체를 늘리는 행위는 의미가있나요?

0

151

2

Conv함수 안에 activation 을 넣지 않는 이유가 뭔지 궁금합니다.

0

212

2

소프트맥스 관련 질문입니다

0

215

1

강의 관련 질문입니다

0

161

2

residual block과 identity block의 차이

0

199

2

옵티마이저와 경사하강법의 차이가 궁금합니다.

1

251

1

실습 환경

0

171

2

입력 이미지 크기

0

256

2

데이터 증강

0

203

2

albumentations ShiftScaleRotate

0

211

1

Model Input Size 관련

0

293

1

마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??

0

206

1

일반적인 질문 (kaggle notebook사용)

0

276

2

실무에서 Augmentation 적용 시

0

346

2

안녕하세요 교수님

0

235

1

가중치 초기화(Weight Initialization) 질문입니다.

0

332

1

테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류

0

412

1

학습이 이상하게 됩니다.

2

1040

2

boston import가 안됩니다

0

230

1