1. 이미지와 행렬
모든 이미지 사진은 픽셀당 숫자로 되어있습니다.
0~255까지 되어있고 0이 검정색, 255가 흰색입니다.
그 숫자의 데이터 타입은 Uint8(Unsigned int) 이라고 적습니다.
먼저 검정부터 회색 , 흰색으로만 되어있는데 그걸 그레이 스케일이라고 합니다. (gray image)
컬러 이미지는 RGB 3개를 사용하고, colored Image 라고 합니다.
컬러 이미지를 그레이 스케일로 바꿔서 사용합니다. (컴퓨터가 특징을 잘잡기 때문)
2. 인공지능 학습에 필요한 데이터 가져오기
밑에서 할 코딩은 https://github.com/zalandoresearch/fashion-mnist#labels 를 사용합니다.
mnist=tf.keras.datasets.fashion_mnist
트레이닝과 테스트셋 가져오기
(X_train,y_train),(X_test,y_test)=mnist.load_data()
shape 확인
이미지를 보여주는 imshow()
import matplotlib.pyplot as plt
plt.imshow(X_train[200],cmap='gray')
plt.show()
피쳐스케일링 과정
모델링 과정!!!!!!
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 => 이미지의 가로 세로를 전부 일렬로 만드는 작업 , 2차원, 3차원을 1차원으로 만드는것
Sequential: SEQUENCE layers 로 모델링
Flatten: 2차원, 3차원을 1차원으로 만드는것
Dense: 뉴런을 레이어에 붙인다.
각 레이어는 activation function 이 필요하다.
Relu 액티베이션 함수 참고 https://docs.google.com/presentation/d/1DCOW7Lum2rnoPU7gxpznimrXV0DOJFc-YkkJt3jZC0U/edit#slide=id.ga8aac09587_0_2
Softmax 여러개의 값 중에서 가장 큰 값을 선택. [0.1, 0.1, 0.05, 0.1, 9.5, 0.1, 0.05, 0.05, 0.05], 여기서 가장 큰 값을 1로 만들고 나머지는 0으로 만들어준다. [0,0,0,0,1,0,0,0,0]
분류의 문제에서 loss를 셋팅하는 방법
# 2개로 분류하는 문제에서의 로스 펑션은 'binary_crossentropy'를 사용.
# 3개 이상으로 분류하는 문제에서는 2가지 방법이 있다.
# y의 값을 확인하여 선택하는 것이다.
# 1번째 방법은 y값이 레이블 인코딩으로 되어있으면, sparse_categorical_crossentropy
# 2번째 방법은 y값이 원핫인코딩으로 되어있으면, categorical_crossentropy
'인공지능 > 딥러닝' 카테고리의 다른 글
딥러닝 : epochs의 횟수를 늘렸을 때 학습데이터/밸리데이션 데이터와 OverFitting (0) | 2022.12.29 |
---|---|
딥러닝 : softmax로 나온 결과를 레이블 인코딩으로 바꾸는 방법 (0) | 2022.12.29 |
딥러닝 : validation data와 Callback(EarlyStopping Library) 사용법 (0) | 2022.12.28 |
딥러닝 : learning rate를 optimizer에 셋팅하기. (0) | 2022.12.28 |
딥러닝 : Tensorflow로 리그레션 문제 모델링 하는 방법 (0) | 2022.12.28 |