Mnist 데이터 로드 후 tensorflow를 통한 train/test split.
from tensorflow.keras import datasets
(train_x, train_y), (test_x, test_y) = datasets.mnist.load_data()
28바이28 의 데이터가 6만개 쌓여있다 라는 뜻
from tensorflow.keras import datasets
(train_x, train_y), (test_x, test_y) = datasets.mnist.load_data()
image=train_x[0]
image.shape
(60000, 28, 28)
plt.imshow(image,'gray')
plt.show()
# 차원 수 높이기
image=image[tf.newaxis,...,tf.newaxis]
*이미지를 불러왔을 때는 주저없이 shape를 확인하여 이미지 사이즈 채널 등등을 확인
*이미지 데이터는 항상
(batch_size,height,weight,channel) 이렇게 들어가게 만들어야함 -> 아래처럼
filters: layer에서 나갈 때 몇 개의 filter를 만들 것인지 (a.k.a weights, filters, channels)
kernel_size: filter(Weight)의 사이즈
strides: 몇 개의 pixel을 skip 하면서 훑어지나갈 것인지 (사이즈에도 영향을 줌)
padding: zero padding을 만들 것인지. VALID는 Padding이 없고, SAME은 Padding이 있음 (사이즈에도 영향을 줌)
activation: Activation Function을 만들것인지. 당장 설정 안해도 Layer층을 따로 만들 수 있음
1. Convolution
tf.keras.layers.Conv2D(filters=3,kernel_size=(3,3),strides=(1,1),padding='SAME',activation='relu')
각각의 하이퍼 파라미터를 설정해둔 뒤에 image는 항상 float형식으로 맞춰준다
Convolution을 거치면서 위에서 아래로 변한것을 확인 가능
weight를 불러온 뒤 확인 -> 첫번째는[0]는 웨이트고 두번째[1]는 Bias
2. Activation Function
Activation function (Relu)를 통과 시킨 이후에는 0이하값이 모두 0이 된것을 볼 수 있다.
->Relu가 0미만을 모두 0으로 바꿔줌
3. Pooling(Stride)
pooling후 확실히 이미지가 줄어든 것을 확인 (원래는 14*14)
4. Fully Connected
4-1 Flatten
flatten.shape를 보면 쫙펴진것을 알수있음(1,245)
4.2 Dense
tf.keras.layers.Dense(32,activation='relu')
tf.keras.layers.Dense(32,activation='relu')
위에서 나온 245를 연결하는것 그다음레이어의 노드의수 =32
레이어를 통과시키고 output을 보면 32개가 되어있음
4.3 DROPOUT
overfitting이 될 수 있어 전체노드를 끊어주는 역할을 함 -> 학습이 안되는 부분을 학습이 되게끔 해줌
*인공지능 학습중에만 drop_out이 실행이되고(B) Test에서는 dropout이 다시 (A)로 돌아옴
얼마나 끊고 살릴건지 비율을(0.7) 주는 것이라 보면 됨
5. Build Model
Feature Extraction 부분안에서 32,64노드의 수 구별을 정확하게 하고
Fully Connected 와의 차이도 살핀다
*마지막에는 Class가 몇개인지에 따라 노드의 갯수가 다르고 Softmax(모든 값을 더했을 때 1이나옴)를 사용
6. Summary
'Project & Kaggle' 카테고리의 다른 글
Dog and cat Classification with CNN (0) | 2020.12.15 |
---|---|
주택 가격 예측 with Deep Neural network (0) | 2020.12.11 |
사내 직원 이탈 모델링 (2) | 2020.09.04 |
전설의 포켓몬 Classification (0) | 2020.05.06 |
보스턴 집 값 예측 - Boston Housing price Regression (0) | 2020.04.24 |