뮤트 개발일지

AIFFEL 아이펠 12일차 본문

AIFFEL

AIFFEL 아이펠 12일차

박뮤트 2022. 1. 12. 23:25

모델에 학습시킬 이미지 사이즈가 서로 다르면 서로 사이즈를 맞춰서 모델 학습을 시켜야 한다.

IMG_SIZE = 160 # 리사이징할 이미지의 크기

def format_example(image, label):
    image = tf.cast(image, tf.float32)  # image=float(image)같은 타입캐스팅의  텐서플로우 버전입니다.
    image = (image/127.5) - 1 # 픽셀값의 scale 수정
    image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))
    return image, label

Flatten: 다차원을 1차원으로 축소

import numpy as np

image = np.array([[1, 2], [3, 4]])
print(image.shape)
image
(2, 2)

array([[1, 2],
       [3, 4]])
image.flatten()
array([1, 2, 3, 4])

모델 complie 하기

learning_rate = 0.0001
model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=learning_rate),
              loss=tf.keras.losses.sparse_categorical_crossentropy,
              metrics=['accuracy'])

- optimizer: 학습을 어떤 방식으로 시킬 것인지 결정. 최적화 함수라고 부르기도 한다.

- loss: 모델이 학습해나가야 하는 방향을 결정. 예) 이미지가 고양이(label=0)일 경우 [1.0, 0.0]에 가깝도록, 강아지(label=1)일 경우 [0.0, 1.0]에 가까워지도록 하는 방향 제시

- metrics: 모델의 성능을 평가하는 척도. 지표로는 정확도accuracy, 정밀도precision, 재현율recall 등이 있다.


Transfer Learning(전이학습)

https://jeinalog.tistory.com/13

 

Transfer Learning|학습된 모델을 새로운 프로젝트에 적용하기

#Transfer Learning #전이학습 #CNN #합성곱 신경망 #Image Classification #이미지 분류 이 글은 원작자의 허락 하에 번역한 글입니다! 중간 중간 자연스러운 흐름을 위해 의역한 부분들이 있습니다. 원 의미

jeinalog.tistory.com

VGG16 모델로 훈련시키기

IMG_SHAPE = (IMG_SIZE, IMG_SIZE, 3)

# Create the base model from the pre-trained model VGG16
base_model = tf.keras.applications.VGG16(input_shape=IMG_SHAPE,
                                         include_top=False,
                                         weights='imagenet')

Global Average Pooling: 평균값을 이용해 벡터의 차원을 축소하는 것

위와 같이 3차원의 벡터가 있을 때 2차원 배열의 평균을 구한 후 하나의 값으로 축소하는 기법이다.

[[1, 5, 4, 5], ..., [8, 6, 8, 7]]에 있는 16개 숫자의 평균을 구하면 5가 된다.

 

정확도 확인 코드

count = 0
for image, label, prediction in zip(images, labels, predictions):
    correct = label == prediction
    if correct:
        count = count + 1

print(count / 32 * 100)

'AIFFEL' 카테고리의 다른 글

AIFFEL 아이펠 14일차  (0) 2022.01.17
AIFFEL 아이펠 13일차  (0) 2022.01.13
AIFFEL 아이펠 11일차  (0) 2022.01.11
AIFFEL 아이펠 10일차  (0) 2022.01.11
AIFFEL 아이펠 사이킷런으로 구현해보는 머신러닝  (0) 2022.01.10