전체 글 224

Tensorflow : MNIST 손글씨 숫자예측 ANN으로 모델링 하기

import numpy as np import matplotlib.pyplot as plt import pandas as pd from PIL import Image %matplotlib inline import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout, Activation from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import to_categorical (X_train, y_t..

CNN(Convolutional Neural Network) 컨볼루션

CNN이란 CNN은 이미지(영상)를 분석하기 위한 패턴을 찾아 이를 직접 학습하고, 학습한 패턴을 이용하여 이미지를 분류한다. CNN은 Convolution Layer, Pooling Layer(Sub Sampling), Fully Connected Layer 를 사용하여 사람의 시각처리방식을 모방한 딥러닝 학습 모델이며, 이미지(영상) 분류에 적합한 딥러닝 모델이다. 컨볼루션이란 이미지의 특징을 추출하고 추출한 특징을 피처맵으로 나타내주는 공식 인풋 이미지 커널,필터,피처디텍터 피처맵 (1*0)+(0*1)+(1*0)+(1*1)+(0*0)+(0*-1)+(0*0)+(1*1)+(1*0)=2 쉽게 인풋에서 피처맵까지의 과정이라고 생각하면된다

완성한 인공지능 model , 네트워크 , weight 저장 하는 방법

1) 네트워크만 저장하고 불러오기 model.to_json() 2) 네트워크를 json 파일로 저장하는 코드 fashion_mnist_network = model.to_json() with open('fashion_mnist_network.json' , 'w') as file : file.write(fashion_mnist_network) 메모리에 있는 fashion_mnist_network 변수를 파일 fashion_mnist_network.json으로 저장하라 구글코랩 내부에 저장이 됨 다운로드도 가능 3)저장된 네트워크를 읽어오는 코드 with open('fashion_mnist_network.json' , 'r') as file : fashion_net = file.read() 저 네트워크를 모델..

딥러닝 하이퍼 파라미터 용어 : validation_data란

기존 모델링 학습중 epoch시 마다 테스트를 하는 validation 데이터를 처리할때 train데이터의 일부를 활용하는 방법을 사용을 했다(validation_split) validation_data는 단순학습이 아니고 따로 평가를 위해 데이터를 준비하는 경우를 의미하며 정확도를 올리는 과정이다. history 기능을 사용해 단순히 train데이터의 loss와 accuracy만 가지고 판단하기에는 overfitting의 문제를 거를 수 없다. 따라서 별도의 validation_data의 loss와 accuracy를 함께 확인함으로써 실제 test 데이터에서의 예측을 보다 정확히 할 수 있다. epoch_history = model.fit(X_train , y_train , epochs=10 ,vali..

Tensorflow 이미지분류(ANN) 모델링시 flatten 사용안하고 모델링하기

def build_model() : model = Sequential() model.add( Flatten() ) model.add(Dense(128 ,'relu' ) ) model.add(Dense(64,'relu') ) model.add( Dense(10, 'softmax') ) model.compile('adam','sparse_categorical_crossentropy',['accuracy']) return model 기존 flatten을 활용한 식 def build_model() : model = Sequential() model.add(Dense(128 ,'relu', input_shape=(784,) ) ) model.add( Dropout(0.2) ) model.add(Dense(64,'..

에포크 학습 데이터/밸리데이션데이터와 오버피팅

def build_model(): model = Sequential() model.add( Flatten() ) model.add( Dense(128, 'relu') ) model.add( Dense(64, 'relu') ) model.add( Dense(10, 'softmax')) model.compile('adam', 'sparse_categorical_crossentropy', ['accuracy']) return model model = build_model() epoch_history = model.fit(X_train, y_train, epochs= 30 , validation_split= 0.2 ) 모델링을 하면서 에포크의 숫자를 너무 과하게 할경우 epoch_history.history.k..