Keras
TensorFlow, Theano, CNTK 등을 사용하기 편하게 해주는 Keras를 정리 한다.
목차
Model
Layer
from keras.models import Sequential model = Sequential()
Dense
from keras.layers import Dense model.add(Dense(units=128, activation='relu', input_shape=(x_train.shape[1], )))
Activation
은닉층에서 사용하는 Activation
- relu
- linear. 계산된 값을 그대로 출력으로 보냄
출력층에서 사용하는 Activation
- sigmoid. 이진 분류
- softmax. 다중 분류
Loss
- categorical_crossentropy : 분류시 사용
- mse : 값 예측시 사용
model.compile(loss='categorical_crossentropy', optimizer=sgd(lr=0.01, momentum=0.9), metrics=['accuracy']) model.compile(loss='mse', optimizer=sgd(lr=0.01, momentum=0.9), metrics=['accuracy'])
Optimizer
- sgd (확률적 경사 하강법)
- 학습률 (LR, Learning Rate) : 0.1, 0.01
- momentum : 학습률 값을 고정하고 모멘텀 항으로 매개변수의 변경값을 조정
- nesterov : True. 순수한 momentum을 약간 변형함
from keras.optimizers import SGD model.compile(loss='mse', optimizer=SGD(lr=0.1, momentum=0.9, nesterov=True), metrics=['accuracy'])
- adagrad : 학습률을 조정하며 학습
from keras.optimizers import Adagrad model.compile(loss='mse', optimizer=Adagrad(lr=0.01, epsilon=1e-6), metrics=['accuracy'])
- adadelta : adagrad을 보완
from keras.optimizers import Adadelta model.compile(loss='mse', optimizer=Adadelta(rho=0.95), metrics=['accuracy'])
- rmsprop : adagrad을 보완
from keras.optimizers import RMSprop model.compile(loss='mse', optimizer=RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0), metrics=['accuracy'])
- adam : 값을 예측할 경우 사용
from keras.optimizers import Adam model.compile(loss='mse', optimizer=Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0), metrics=['accuracy'])
- adamax
- nadam
참고 문헌
Metrics
- accuracy : 정확도
Predict
사용자 매뉴얼
사용 라이브러리 지정
"c:/사용자/{사용자_이름}/.keras/keras.json" 파일에서 backend를 지정 한다.
- backend : tensorflow, theano, cntk
{ "backend": "tensorflow", "image_data_format": "channels_last", "floatx": "float32", "epsilon": 1e-07 }
Device 지정
Device 목록 확인
from tensorflow.python.client import device_lib print(device_lib.list_local_devices())
Device 사용 지정
import keras.backend.tensorflow_backend with tensorflow_backend .tf.device('/gpu:0'): #--- Keras 코드