반응형

분류 전체보기 121

딥러닝(13) pooling 이란

CNN 모델에서 또 한가지 중요한 개념은 풀링이다. 풀링은 image data의 사이즈를 줄여 작은 image로 만드는 과정이다. 풀링을 하는 이유는 데이터를 학습하는 과정에서 학습할 이미지의 전체 데이터 분량이 필요하지 않기 때문이다. 적당량 한 있어도 데이터가 학습되고 학습 효율을 높일수 있기 때문에 사용된다. 그럼 풀링은 어떻게 사용되는 것일까? 주로 풀링으로 잡은 영역의 데이터의 최댓값을 사용하거나 평균을 사용하여 풀링을 진행한다. 풀링은 추후에 CNN 모델링때 다시 이야기가 나올예정이다.

딥러닝 2023.01.02

딥러닝(12)CNN의 구조

지난 시간까지 배운 모델은 ANN로써 이미지데이터도 Flatten 라이브러리를 써서 1차원 데이터로 만든다음 분석할수 있지만 이렇게 되면 ANN로 이미지 데이터를 학습시키기 위해선 모든 이미지 데이터를 데이터 형식에 맞게 재구성해서 사용하여야 한다. 그렇게 된다면 너무나 비효율적인 학습이 진행될것이다. 따라서 새로운 모델인 CNN을 알아보자 CNN은 ANN과 연결하여 쓰지만 이미지 데이터를 변환 없이 그대로 적용할수 있기 때문에 주목을 받는다. 이미지 데이터가 들어 오게 되면 그 이미지 파일은 0,1로 이루어진 매트릭스가 되고 이를 Kernel,Featurt Detector 로 불리는 것으로 행렬의 곱처럼 매트릭스 일부분을 행렬로 삼아 곱하여 Feature Map에 곱한 값에 전체 합을 넣는다. 매트릭스..

딥러닝 2022.12.30

딥러닝(11) 텐서플로우의 모델을 저장하고 불러오는 방법

텐서플로우 모델을 만들시 구글코랩에서 만든 모델이면 임시로 구글에서 서버를 잠깐 빌려주는 식이라 빌려준 서버와의 연결이 끊기면 모델은 저장되지 않고 날아간다. 이러한 사태를 방지 하기 위해 모델을 저장하는 방법을 알아보자. 첫번째 방법은 딥러닝 했던 내용을 폴더로 저장하는 방법이다. # 전체 네트워크와 웨이트를 통으로 저장하고 불러오기 # 폴더 구조로 저장. model.save('fashion_mnist_model') # 저장된 인공지능을 불러오는 코드. tf.keras.models.load_model('fashion_mnist_model') 코드를 실행하면 구글서버에 폴더 형태로 저장되며 세션이 끊기면 사라지지만 세션이 끊기기 전에 폴더를 다운로드하여 저장할 수 있다. 두번째 방법은 h5파일로 저장하는..

딥러닝 2022.12.30

딥러닝(10) 에포크시마다 테스트를 하는, 벨리데이션 데이터를 처리하는 방법중 validation_data 파라미터 사용법

제목은 길지만 사실 코드 하나만 바꾸면 된다. validation 파라미터로 validation_split을 쓰는 회사가 있고 validation_data를 파라 미터로 쓰는 회사가 있기 때문이다. 어떤 코드만 바꾸면 되냐면 # 학습시 validation_split 대신 validation_data를 써준다. # validation_data의 파라미터는 X_test,y_test이다. epoch_history = model.fit(X_train,y_train,epochs=10, validation_data=(X_test,y_test)) validation_data는 파라미터로 X_test,y_test 쓴다.

딥러닝 2022.12.29

딥러닝(9)Flatten 라이브러리 없이, 이미지를 평탄화 하는 방법

지금까지 이미지 데이터를 평탄화 하기 위해선 Flatten 라이브러리를 썼다. 사실 Flatten 라이브러리는 텐서플로우가 버전이 업 된 다음부터 나온거라 그전에는 평탄화 작업을 Flatten 라이브러리 없이 썼다. 지금부터 그 방법을 알아보자 데이터를 불러오는것까진 Flatten 라이브러리 글과 동일하다. # 0~255의 데이터이므로 255로 나눈다. X_train=X_train/255.0 X_test = X_test/255.0 이렇게 나누게 되면 저절로 데이터가 0~1사이의 값으로 바뀐다. 이상태에서 데이터를 리셰이프 해준다. #모양을 행수와 컬럼과 컬럼안에 데이터수를 곱한 값으로 써준다. X_train=X_train.reshape(60000,28*28) X_test=X_test.reshape(100..

딥러닝 2022.12.29

딥러닝(9) 텐서플로우의 콜백클래스를 이용해서, 원하는 조건이 되면 학습을 멈추게 하는 코드

지난시간에 오버 피팅 문제를 해결하기 위해 텐서 플로우의 Callback 클래스를 사용한다. 우선 텐서 플로우를 이용해 Callback 클래스를 만든다. #val_accuracy가 88%가 넘으면 멈추도록 하고 싶다. # Callback 클래스 만들기 class myCallback(tf.keras.callbacks.Callback): def on_epoch_end(self,epoch, logs={}): if logs['val_accuracy']>0.88: print('\n내가 정한 정확도에 도달했으니, 학습을 멈춘다.') self.model.stop_training =True my_cd = myCallback() Callback 클래스를 학습할때 넣고 모델로 학습을 시킨다. def build_model(..

딥러닝 2022.12.29

딥러닝(8)에포크, 학습데이터/벨리데이션데이터와 오버피팅

이번 시간에는 에포크와 학습데이터 벨리데이션 데이터의 오버피팅을 알아보겠다. 우선 저번 시간에 에포크와 벨리데이션 그래프를 보자 그래프 끝에는 심하게 흔들리는 지점이 존재한다. 이지점은 유효한 데이터값이 아니기 때문에 epoch를 흔들리는 지점까지 설정해선 안된다. 이렇게 흔들리는 현상을 오버 피팅이라 한다. 다음시간엔 이 오버 피팅을 해결할 코드를 올리겠다.

딥러닝 2022.12.29

딥러닝(7) flatten 라이브러리 사용하는 이유, 액티베이션함수 소프트맥스, 분류의 문제에서 loss셋팅

이미지를 사용하는 딥러닝에 경우 이미지 데이터는 3차원으로 표현되기 때문에 flatten 라이브러리가 필요하다.특히 이미지는 숫자로 되어있다. 0부터 255까지의 숫자로 되어있다. 우선 데이터를 가져오자 데이터를 가져오는 방식은 기존 방식과 약간 다르다. import numpy as np import tensorflow as tf from tensorflow.keras.datasets import fashion_mnist #텐서플로우에 fashion 데이터셋에서 가져온다. mnist = tf.keras.datasets.fashion_mnist (X_train, y_train),( X_test, y_test) = mnist.load_data() X_train [0] 데이터가 하나의 이미지당 행렬을 띄고 있..

딥러닝 2022.12.29

딥러닝(6) validation split

validation은 딥러닝을 할때 새로운 데이터로 얼마나 예측하는지 알아보는 방법이다. 코드를 통해 어떻게 쓰이는지 알아보자 데이터는 지난시간까지 블로그를 읽어봤다면 알수 있으니 생략하고 중요한 부분 부터 나간다. 먼저 딥러닝할 모델을 모델링한다. # 딥러닝 모델링 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense def build_model(): #모델링 model =Sequential() model.add ( Dense(units=64, activation= 'relu',input_shape=(9,) ) ) model.add ( Dense(units..

딥러닝 2022.12.29

딥러닝(5) 텐서플로우로 리그레션 문제 모델링 하는 방법

이번 시간에는 텐서플로우로 리그레션 문제를 모델링해보자 저번 시간과 마찬가지로 구글 코렙에서 진행한다. 우선 데이터를 불러온다. # 기본 함수 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 구글 드라이브 마운트 from google.colab import drive drive.mount('/content/drive') #working directory 셋팅 import os os.chdir('/content/drive/MyDrive/Colab Notebooks/ml_plus/data') #csv 파일 불러오기 df = pd.read_csv('Car_Purchasing_Data.csv..

딥러닝 2022.12.28