inflearn logo
강의

Course

Instructor

A Complete Guide to Deep Learning CNN - TensorFlow Keras Version

Implementation of CIFAR10 training model using pre-trained model Xception and comparison of model performance

image_size 변환에서 질문있습니다.

289

wby6688882616

1 asked

0

마지막 파트에서 로직들을 함수화 해서 쓸 때

IMAGE_SIZE = 32

...

def do_cifar10_train_evaluation(image_size=IMAGE_SIZE, model_name='vgg16'):

과 같이 정의 하고

history, evaluation_result = do_cifar10_train_evaluation(image_size=64, model_name='xception')으로 사용하는데 위에 IMAGE_SIZE를 바꿔야 input_size가 바뀌는거 같은데 저만 그러나요...? 아니면 강의때 설명 해 주셨는데 제가 못들은걸까요...?

아래는 vgg16으로 IMAGE_SIZE를 직접 바꿨을 때랑 안바꿨을 때 summary 초반 부분입니다.

 

 

 

IMAGE_SIZE = 32
...
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         [(None, 32, 32, 3)]       0         
_________________________________________________________________
block1_conv1 (Conv2D)        (None, 32, 32, 64)        1792      
_________________________________________________________________
block1_conv2 (Conv2D)        (None, 32, 32, 64)        36928     
_________________________________________________________________

IMAGE_SIZE = 64
...
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         [(None, 64, 64, 3)]       0         
_________________________________________________________________
block1_conv1 (Conv2D)        (None, 64, 64, 64)        1792      
_________________________________________________________________
block1_conv2 (Conv2D)        (None, 64, 64, 64)        36928     


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

Answer 1

0

dooleyz3525

안녕하십니까, 

아래 모델을 생성하는 함수를 보시면 input_tensor로 Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3)을 받습니다.  그래서 VGG나 xception을 만들때 input_tensor에 IMAGE_SIZE로 지정된 크기만큼 Input을 입력 받게 됩니다. 따라서 IMAGE_SIZE가 바뀌면 INPUT SIZE가 바뀌게 됩니다. 

def create_model(model_name='vgg16', verbose=False):
    
    input_tensor = Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3))
    if model_name == 'vgg16':
        base_model = VGG16(input_tensor=input_tensor, include_top=False, weights='imagenet')
    elif model_name == 'resnet50':
        base_model = ResNet50V2(input_tensor=input_tensor, include_top=False, weights='imagenet')
    elif model_name == 'xception':
        base_model = Xception(input_tensor=input_tensor, include_top=False, weights='imagenet')

0

wby6688882616

아하 알겠습니다.

그런데 image_size=64로 하고 IMAGE_SIZE=32로 하면 tr_images의 shape는 64x64가 되고 input_tensor의 shape는 32x32가 되서 두개가 서로 달라져 오류가 나야하는게 아닌가요?

0

dooleyz3525

지금 코드는 get_resized_images(images, resize=64)로 resize가 64가 default가 되어 있습니다. 

만일 get_resized_images(tr_images, resize=64) 이고 IMAGE_SIZE가 32이면 오류가 납니다. 

0

wby6688882616

강의 영상이랑 실습자료에는 IMAGE_SIZE=32이고 image_size=64로 함수에 들어가는데 실제로 코드가 정상실행 되는데 이건 왜 그럴까요...?

resize 질문

0

50

1

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

0

75

1

Loss와 매트릭 관계

0

62

2

Boston 코랩 실습

0

162

2

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

0

134

2

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

0

144

2

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

0

204

2

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

0

208

1

강의 관련 질문입니다

0

151

2

residual block과 identity block의 차이

0

186

2

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

1

238

1

실습 환경

0

165

2

입력 이미지 크기

0

243

2

데이터 증강

0

195

2

albumentations ShiftScaleRotate

0

205

1

Model Input Size 관련

0

279

1

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

0

204

1

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

0

272

2

실무에서 Augmentation 적용 시

0

338

2

안녕하세요 교수님

0

231

1

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

0

327

1

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

0

407

1

학습이 이상하게 됩니다.

2

1036

2

boston import가 안됩니다

0

228

1