분류 전체보기

    Python 으로 압축파일 풀기

    import zipfile # 파일을 불러옴 file = zipfile.ZipFile('/tmp/horse-or-human.zip') # /tmp/horse-or-human에 모든 압축 풀기 file.extractall('/tmp/horse-or-human')

    Convolution Neural Network(CNN, 합성곱 신경망) 개념

    1. Convolution Neural Network (CNN) 필터링 기법을 인공신경망에 적용(Convolution 작업)하여 이미지를 효과적으로 처리 할 수 있는 기법 행렬로 표현된 필터의 각 요소가 데이터 처리에 적합하도록 자동으로 학습되는 과정을 통해 이미지를 분류하는 기법 2. 심층신경망(DNN), 합성곱신경망(CNN)의 차이 심층 신경망 (DNN) 1차원의 데이터로 학습 다차원일 경우 flatten 작업을 통해 1차원으로 변경, 이미지의 경우 공간적/지역적 정보가 손실 추상화 과정 없이 바로 연산 과정으로 넘어가기 때문에 학습 시간과 효율성이 저하 합성곱 신경망 (CNN) 그대로의 데이터로 학습 공간적/지역적 정보 유지 이미지 전체보다는 부분을 보는 것, 이미지의 한 픽셀과 주변 픽셀들의 연관..

    Tensorflow - 레이블인코딩 된 y값을 원핫인코딩으로 바꾸기

    위의 0부터 9까지의 클래스로 분류된 numpy array를 One-Hot encoding으로 변환하려고 한다. numpy 라이브러리에는 없지만, 머신러닝 과정에서 유용한 numpy array를 다루는 기능들을 keras.utils 라이브러리에서 제공한다. tf.keras.utils.to_categorical 레이블 인코딩 된 배열 y를 원핫인코딩으로 변환 num_classes: 총 클래스 수. 입력하지 않았을 때, default 값은 max(y) + 1 import tensorflow as tf # 0부터 9까지의 클래스로 분류된 ndarray y_train >>> array([5, 0, 4, ..., 5, 6, 8], dtype=uint8) # 원핫인코딩으로 변환 y_train = tf.keras.u..

    Tensorflow - model을 파일로 저장하고 불러오는 방법

    1. 전체 모델구조(Network)와 가중치(Weight) 함께 저장하기 모델 + 가중치를 저장해서 불러오면 모델에 complie을 할 필요없이 바로 사용 가능하다. 폴더구조로 저장, 불러오기 # 폴더구조로 저장 model.save('fashion_mnist_model') # 불러오기 model2 = tf.keras.models.load_model('fashion_mnist_model') 파일구조로 저장, 불러오기 # 모델을 h5파일 하나로 저장 model.save('fashion_mnist_model.h5') # 불러오기 model3 = tf.keras.models.load_model('fashion_mnist_model.h5') 2. 모델 구조(Network)만 저장하고 불러오기 # 네트워크를 jso..

    Tensorflow - 이미지를 1차원으로 만드는 방법(Flatten)

    이미지를 ANN에 input해 학습하려면 2차원 또는 3차원으로 되어있는 이미지의 shape을 1차원으로 바꿔줘야 한다. 1. keras.layers.Flatten() tensorflow에서 제공하는 Faltten() 함수를 사용하면 2차원, 3차원 input이 들어왔을때 알아서 1차원으로 바꿔준다. Flatten() 을 사용하면 모델링 시 input_shape도 자동으로 정해주기 때문에 입력할 필요가 없다. from keras.layers import Flatten model.add(Flatten()) 전체 모델 예시 import tensorflow as tf from tensorflow import keras from keras.models import Sequential from keras.laye..

    Tensorflow - Callback 클래스를 이용해서, 원하는 조건이 되면 학습을 멈추기

    accuracy나 loss 등이, 내가 원하는 특정 값이 되면 자동으로 학습을 멈추게 하고 싶다. Tensorflow에서는 특정값에 도달하면 학습을 멈추게 할 수 있는 콜백 기능을 제공한다. tf.keras.callbacks.Callback을 상속해서 사용한다. import tensorflow as tf from tensorflow import keras from keras.models import Sequential from keras.layers import Dense from keras.layers import Flatten class myCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs={}): if logs['va..

    Tensorflow - Dropout 사용법

    Dropout 이란? 딥러닝 학습에 있어서의 overfitting을 방지하기 위한 방법 중 한 가지 hidden layer의 일부 뉴런이 동작하지 않게 하여, 특정한 feature만을 과도하게 학습하는 것을 방지하는 방법 모델링시 계층(레이어) 설정에서 정의 Dropout 사용법 from keras.layers import Dropout # 노드의 20%를 드롭아웃 처리 model.add(Dropout(0.2)) 전체 모델 예시 import tensorflow as tf from keras.models import Sequential from keras.layers import Dense from keras.layers import Dropout def build_model(): model = Seque..

    Tensorflow - Overfitting, Underfitting 개념

    1. Generalization (일반화) 모델이 처음 보는 데이터에 대해 정확하게 예측 할 수 있으면, 이를 train 세트에서 test 세트로 일반화 되었다고 한다. 2. Overfitting (과대적합) 과대적합(overfitting)이란 머신러닝 모델을 학습할 때 train 데이터셋에 지나치게 최적화하여 발생하는 문제이다. 즉, 모델을 지나치게 복잡하게 학습하여 학습 데이터셋에서는 모델 성능이 높게 나타나지만 정작 새로운 데이터가 주어졌을 때 정확한 예측/분류를 수행하지 못한다. 3. Underfitting (과소적합) 과소적합(underfitting)이란 과대적합의 반대 개념으로서, 머신러닝 모델이 충분히 복잡하지 않아(최적화가 제대로 수행되지 않아) train 데이터의 구조/패턴을 정확히 반영..