인공지능/Deep Learning 16

[Deep Learning] Transfer Learning Fine tuning

이전에 했던 MobileNetV2 를 활용한 이미지 분류 딥러닝을 추가로 Fine tuning 했다. 파인 튜닝은 트랜스퍼 러닝을 한 다음에 하는 방법이다. 트랜스퍼 러닝을 한 후에 조금 더 개선이 가능한지 해보는 방법으로 학습된 모델 그 상태에서 추가로 학습을 시키되 좋은 모델의 일부분을 우리 데이터로 학습 가능토록 변경한 후에 학습 시키는 방법 # 1. 베이스 모델 전체 레이어를 학습 가능토록 일괄 바꾼다. >>> base_model.trainable = True # 2. 베이스 모델의 전체 레이어 수를 확인한다. >>> len(base_model.layers) 154 # 3. 레이어 수 확인 후, 몇 번째 레이어부터 학습이 안되도록 할 것인지 결정해준다. # 그러면 나머지 레이어는 학습이 가능한 것..

[Deep Learning] 이미지 분류 딥러닝 Transfer Learning, MobileNetV2 활용

Transfer Learning 란 한 작업에서 학습한 지식을 다른 관련 작업으로 전송하는 것 = 내 데이터로 다시 재 학습(보강해서)해서 사용 MobileNetV2 는 경량화된 딥러닝 아키텍처로, 모바일 및 임베디드 기기에서도 효율적으로 사용될 수 있으며 정확도 또한 많이 떨어지지 않게하여 속도와 정확도 사이의 트레이드 오프 문제를 어느정도 해결한 네트워크이다. 트랜스퍼 러닝은 학습이 잘 된 모델을 가져와서 나의 문제에 맞게 활용하는 것이므로 학습이 잘 된 모델의 헤드 모델을 뺀 베이스 모델만 가져온다. import tensorflow as tf # 만들려는 모델의 인풋 이미지는 (128, 128, 3)으로 한다 >>> IMG_SHAPE = (128, 128, 3) >>> base_model = tf...

[Deep Learning] CNN TensorFlow 이미지 분류 딥러닝

이전에 DNN 으로 했던 이미지 분류를 CNN 을 이용해 분류 import tensorflow as tf from tensorflow.keras.datasets import fashion_mnist # 데이터 가져와서 학습용과 테스트용으로 분리 (X_train, y_train), (X_test, y_test) = fashion_mnist.load_data() # 컬러 이미지든 그레이 스케일 이미지든 전부 처리할 수 있는 인공지능 개발을 위해서 # 4차원으로 reshape 한다. >>> X_train.shape (60000, 28, 28) >>> X_train = X_train.reshape(60000,28,28,1) >>> X_test.shape (10000, 28, 28) >>> X_test = X_t..

[Deep Learning] 이미지 파일 학습 데이터로 만들기(+이미지 증강) ImageDataGenerator

fit 함수에 들어가는 데이터는 넘파이 어레이 이미지 파일을 어레이로 변환시켜주는 라이브러리 => ImageDataGenerator rotation_range=40 : 이미지를 무작위로 회전시키는 각도 범위 width_shift_range=0.2 : 이미지를 수평으로 무작위로 이동시키는 비율 height_shift_range=0.2 : 이미지를 수직으로 무작위로 이동시키는 비율 shear_range=0.2 : shear 적용하는 범위입니다. shear => 이미지를 변형시켜 기울이는 효과 zoom_range=0.2 : 이미지를 확대 또는 축소하는 범위 horizontal_flip=True : 이미지를 수평으로 무작위로 뒤집는지 여부를 결정 fill_mode='nearest' : 이미지를 변형할 때 채워지..

[Deep Learning] DNN TensorFlow 이미지 분류 딥러닝

import numpy as np import tensorflow as tf from tensorflow.keras.datasets import fashion_mnist # TensorFlow keras datasets API에 들어있는 Fashion MNIST 데이터 가져와 사용 트레이닝셋과 테스트셋을 가져온다 => 텐서플로우에서 사진을 넘파이로 변환해둔 데이터 >>> (X_train, y_train), (X_test, y_test) = fashion_mnist.load_data() >>> X_train.shape (60000, 28, 28) 이미지 확인 : plt.imshow() 이미지는 범위(0~255)가 정해져 있기 때문에 StandardScaler, MinMaxScaler 를 쓰지 않고 범위의 ..

[Deep Learning] epochs history 차트 시각화

# 학습시킬때 변수에 저장하여 학습 # validation_split=0.2 => 학습 데이터의 20% 는 테스트용으로 하겠다. >>> epoch_history = model.fit(X_train, y_train, epochs=500, validation_split=0.2) # 밸리데이션(Validation) 이란, # 에포크가 한 번 끝날 때마다 학습에 사용하지 않은 데이터로 시험을 보는 것을 말한다. # 테스트란? 인공지능 학습이 완전히 다 끝났을 때 평가하는 것을 테스트라고 하고 # 밸리데이션이란? 에포크가 끝날 때마다 평가하는 것을 말한다. # 저장된 변수의 히스토리는 딕셔너리 >>> epoch_history.history.keys() dict_keys(['loss', 'mae', 'val_los..