텐서플로
구글이 만든 딥러닝 라이브러리이다. CPU와 GPU를 사용해 인공 신경망 모델을 효율적으로 훈련하며 모델 구축과 서비스에 필요한 다양한 도구를 제공한다. 케라스를 핵심 API로 채택하여 간단한 모델에서 아주 복잡한 모델까지 손쉽게 만들 수 있다.
밀집층
가장 간단한 인공 신경망의 층이다. 밀집층에서는 뉴런들이 모두 연결되어있기때문에 완전 연결 층이라고도 불린다. 출력층에 밀집층을 사용할 때는 클래스와 동일한 개수의 뉴런을 사용한다.
원-핫 인코딩
정숫값을 배열에서 해당 정수 위치의 원소만 1이고 나머지는 모두 0으로 변환한다. 다중분류에서 출력층이 만든 확률과 크로스 엔트로피 손실을 계산하기 위해서이다.
from tensorflow import keras
(train_input,train_target),(test_input,test_target)=keras.datasets.fashion_mnist.load_data()
print(train_input.shape,train_target.shape)
print(test_input.shape,test_target.shape)
import matplotlib.pyplot as plt
fig,axs = plt.subplots(1,10,figsize=(10,10))
for i in range(10):
axs[i].imshow(train_input[i],cmap='gray_r')
axs[i].axis('off')
plt.show()
print([train_target[i] for i in range(10)])
import numpy as np
print(np.unique(train_target,return_counts=True))
train_scaled = train_input/255.0
train_scaled = train_scaled.reshape(-1,28*28)
print(train_scaled.shape)
from sklearn.model_selection import cross_validate
from sklearn.linear_model import SGDClassifier
sc = SGDClassifier(loss='log',max_iter=5,random_state=42)
scores = cross_validate(sc,train_scaled,train_target,n_jobs=-1)
print(np.mean(scores['test_score']))
from sklearn.model_selection import train_test_split
train_scaled,val_scaled,train_target,val_target = train_test_split(train_scaled,train_target,test_size=0.2,random_state=42)
dense = keras.layers.Dense(10,activation='softmax',input_shape=(784,))
model = keras.Sequential(dense)
model.compile(loss='sparse_categorical_crossentropy',metrics='accuracy')
model.fit(train_scaled,train_target,epochs=5)
model.evaluate(val_scaled,val_target)
출처: 혼공머신