목록AI (45)
개발학습일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQBg59/btsGJddGORk/8DxxZEJtxOApXy5PVmAjjK/img.png)
CNN의 풀링(Pooling (Downsampling)) CNN 이란? : Convolution Neural Network의 약자로 딥러닝에서 주로 이미지나 영상 데이터를 처리할 때 쓰인다 : ANN을 사용하면 위치구조가 사라지기때문에 사진을 있는 그대로 학습시키는 CNN을 사용한다 풀링(Pooling)이란? : 다운 샘플링(Down sampling)이다 (다운샘플링 = 사이즈를 줄인다) : 대표하는 값으로 하나로 만드는 것이다 풀링의 종류 - Max Pooling : 정해진 크기 안에서 가장 큰 값만 가져온다 - Average Pooling : 정해진 크기 안의 값들의 평균을 가져온다 - 일반적으로 가장 많이 사용하는 것은 맥스풀링( Max Pooling ) 이다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d23pBw/btsGKWveckG/t4lKEsbyVUN58dvASos8O1/img.png)
CNN의 컨볼루션(Convloution) CNN이란?: Convolution Neural Network의 약자로 딥러닝에서 주로 이미지나 영상 데이터를 처리할 때 쓰인다 : ANN을 사용하면 위치구조가 사라지기때문에 이미지 데이터의 경우 사진을 있는 그대로 학습시키는 CNN을 사용한다 컨볼루션이란?: 하나의 함수와 또 다른 함수를 반전 이동한 값을 곱한 다음, 구간에 대해 적분하여 새로운 함수를 구하는 수학 연산자 : 이미지의 특징을 잘 잡아낸다 커널(kernel or filter)로 컨볼루션(Convloution)한 결과는 피처맵(Feature Map)이다 스트라이드(Stride): 몇칸 이동할 것인지 지정할 수 있다- 스트라이드 값이 늘어날수록 피처맵은 작아진다 피처맵을 나..
아티팩처를 저장하고 불러오기 아티팩처 폴더로 저장하는 방법 : 텐서플로우 라이브러리가 가지고 있는 함수 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 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVJq3t/btsGKeJw6gH/KZ3wNLRSZVlhUPS9V45wOk/img.png)
이미지를 분류하는 인공지능을 만들어보자 데이터셋 : 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) 데이터의 들어있는 사진 확인하는..
분류 문제 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 함수의 종류는 다양하지..
함수 만드는 라이브러리 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Aph9u/btsGGZfLgvm/p8svR9ogKYOutFAvx6Pd1K/img.png)
텐서플로우 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsnqGB/btsGJMTln27/3G8zGVc0tG74wxBioeOIhK/img.png)
validation 이란? : 에포크가 한번 끝날때 마다 학습에 사용하지 않은 데이터로 시험 보는 것을 말한다 ** 테스트 = 인공지능이 완전히 학습이 다 끝난 상태에서 평가 ** 벨리데이션 = 학습 중에 (에포크 하나가 끝날때마다) 평가 인공지능 학습(fit) 시킬때 파라미터로 넣어서 지정해준다 - validation_split= 사용 _ 학습할때 학습 데이터의 0.n 은 테스트 용으로 쓰겠다고 지정하는 것이다 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense def build_model() : model = Sequential() model.add(D..