inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1*1 인셉션넷에서의 실습 코드 오타인가요??

156

박우성

작성한 질문수 10

0

def inception_module(x, filters_1x1, filters_3x3_reduce, filters_3x3, filters_5x5_reduce, filters_5x5, 

                     filters_pool_proj, name=None):

    '''

    x: 입력 Tensor

    filters_1x1: 단독 1x1 필터수

    filters_3x3_reduce: 3x3 Conv 적용 전 1x1 Conv 필터수

    filters_3x3: 3x3 Conv 필터수

    filters_5x5_reduce: 5x5 Conv 적용 전 1x1 Conv 필터수

    filters_5x5: 5x5 Conv 필터수

    filters_pool_prj: MaxPooling 적용 후 1x1 Conv 필터수 

    '''

    

    # 첫번째 1x1 Conv

    conv_1x1 = Conv2D(filters_1x1, (1, 1), padding='same', activation='relu')(x)

    # 3x3 적용 전 1x1 conv -> 3x3 Conv

    conv_3x3 = Conv2D(filters_3x3_reduce, (1, 1), padding='same', activation='relu')(x)

    conv_3x3 = Conv2D(filters_3x3, (3, 3), padding='same', activation='relu')(conv_3x3)

    # 5x5 적용 전 1x1 Conv -> 3x3 Conv

    conv_5x5 = Conv2D(filters_5x5_reduce, (1, 1), padding='same', activation='relu')(x)

    conv_5x5 = Conv2D(filters_5x5, (5, 5), padding='same', activation='relu')(conv_5x5)

 

    pool_proj = MaxPooling2D((3, 3), strides=(1, 1), padding='same')(x)

    pool_proj = Conv2D(filters_pool_proj, (1, 1), padding='same', activation='relu')(pool_proj)

    # 단독 1x1 결과, 3x3 결과, 5x5 결과, pool이후 1x1 결과 feature map을 채널 기준으로 Concat 적용. 

    output = Concatenate(axis=-1, name=name)([conv_1x1, conv_3x3, conv_5x5, pool_proj])

    return output

 

빨간색 (x)부분들에  진행하지않은 X 가 아닌 1*1진행한 conv_1*1 들어가야 맞는거 아닌가요`?

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

답변 1

1

권 철민

안녕하십니까, 

음, 아닙니다.  inception module 의 그림을 다시한번 봐주시기 바랍니다. 

x 는 previous layer의 tensor 입니다. 

conv_1x1는 inception module그림의 맨 왼쪽입니다. previous layer가 아니고 새롭게 생성되는 별개의 layer입니다.  

아래 conv_3x3은  inception module그림의 왼쪽에서 2번째 이며 먼저 previous layer 값인 x를 입력 받아야 합니다. 

conv_3x3 = Conv2D(filters_3x3_reduce, (1, 1), padding='same', activation='relu')(x)

아래 conv_5x5도  inception module 그림의 왼쪽에서 3번째이며 마찬가지로 previous layer 값인 x를 입력 받아야 합니다. 

conv_5x5 = Conv2D(filters_5x5_reduce, (1, 1), padding='same', activation='relu')(x)

 

0

박우성

감사합니다~!

 

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

210

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