본문 바로가기

MACHINE | DEEP LEARNING/Deep Learning Project21

[AI] 딥러닝 CNN의 컨볼루션(Convloution) CNN의 컨볼루션(Convloution) CNN이란?: Convolution Neural Network의 약자로 딥러닝에서 주로 이미지나 영상 데이터를 처리할 때 쓰인다 : ANN을 사용하면 위치구조가 사라지기때문에 이미지 데이터의 경우 사진을 있는 그대로 학습시키는 CNN을 사용한다 컨볼루션이란?: 하나의 함수와 또 다른 함수를 반전 이동한 값을 곱한 다음, 구간에 대해 적분하여 새로운 함수를 구하는 수학 연산자 : 이미지의 특징을 잘 잡아낸다 커널(kernel or filter)로 컨볼루션(Convloution)한 결과는 피처맵(Feature Map)이다 스트라이드(Stride): 몇칸 이동할 것인지 지정할 수 있다- 스트라이드 값이 늘어날수록 피처맵은 작아진다 피처맵을 나.. 2024. 4. 18.
[AI] 딥러닝 모델 저장하기, 불러오기_폴더로 저장, 파일로 저장 아티팩처를 저장하고 불러오기 아티팩처 폴더로 저장하는 방법 : 텐서플로우 라이브러리가 가지고 있는 함수 save() 사용 model.save('my_model') 저장한 폴더 불러오는 방법 : tf.keras.models.load_model('저장되어있는 아티팩처명') 사용 my_model = tf.keras.models.load_model('my_model') # 잘 되는지 확인하기 my_model.predict(X_test) 아티팩처 파일로 저장하는 방법 : 텐서플로우에서는 확장자 명을 .h5 로 사용한다 model.save( 'my_model.h5' ) 저장한 파일 불러오는 방법 : 폴더와 동일하게 tf.keras.models.load_model('저장되어있는 아티팩처명') 사용 my_model2 .. 2024. 4. 18.
[AI] 딥러닝 ANN 텐서플로우 이미지 분류하기 이미지를 분류하는 인공지능을 만들어보자 데이터셋 : TensorFlow keras datasets API에 들어있는 Fashion MNIST데이터 import numpy as np import tensorflow as tf from tensorflow.keras.datasets import fashion_mnist mnist = tf.keras.datasets.fashion_mnist 텐서플로우에서 사진을 넘파이로 변환해 둔 데이터 트레이닝셋과 테스트셋 가져온다 (X_train, y_train), (X_test, y_test) = mnist.load_data() X_train.shape # (60000, 28, 28) X_test.shape # (10000, 28, 28) 데이터의 들어있는 사진 확인하는.. 2024. 4. 18.
[AI] 딥러닝 compile, loss(손실함수) 값 설정 _ 분류문제, 수치문제 분류 문제 Loss 셋팅 분류의 Loss 함수는 2가지로 나뉜다 1. 2개로 분류하는 문제에서는 loss = ' binary_crossentropy ' 2. 3개 이상으로 분류하는 문제에서는 loss = ' sparse_categorical_crossentropy ' # 2개로 분류 model.compile( optimizer= 'adam', loss= 'binary_crossentropy', metrics= [ 'accuracy' ]) # 3개 이상으로 분류 model.compile( optimizer= 'adam', loss= 'sparse_categorical_crossentropy', metrics= [ 'accuracy' ]) 수치 예측 문제 Loss 셋팅 수치의 Loss 함수의 종류는 다양하지.. 2024. 4. 18.
[AI] 딥러닝 이미지 인식 _ 프래튼 라이브러리(Flatten Library), 소프트맥스(activation= 'softmax') 함수 만드는 라이브러리 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Flatten 프래튼 라이브러리 from types import MethodWrapperType 모델을 만드는 함수를 만들때, 이미지의 가로 세로를 전부 일렬로 만들어 인풋레이어에 지정 해준다 - Flatten() 사용 : 이미지 인풋레이어의 갯수는 행*열 이다 - 일렬로 만들다보면 위치에 문제가 생길 수도 있다 그래서 모양대로 아키텍처를 만들기 위해 CNN(특징값 보존)을 개발했다 def build_model(): model = Sequential() model.add(Flatten()) model.add(Dense(12.. 2024. 4. 18.
[AI] 딥러닝 오버피팅 되는 것을 방지하기 위한 EarlyStopping, Callback 텐서플로우 EarlyStopping, Callback Callback : 내가 만든 함수를 프레임워크가 실행시켜주는 것이다 EarlyStopping : 지정된 에포크 횟수동안 성능 향상이 없으면 자동으로 훈련이 멈춘다 비어있는 인공지능을 만들고 코드를 작성해주면 된다 # 비어있는 인공지능 model = build_model() # patience를 10으로 설정하면, 10번의 에포크동안 성능향상이 없으면, 학습을 끝내는 것이다 early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10) # 학습할때 callbacks을 입력 epoch_history = model.fit(X_train, y_train, epochs=100000.. 2024. 4. 17.