개요
keras를 통해 deep non linear regression 하는 예제 코드를 작성하여 정리해둔다.
backend는 tensorflow를 사용하였다.
from keras import backend as K
def root_mean_squared_error(y_true, y_pred):
return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1))
# define base model
def baseline_model():
# create model
model = Sequential()
model.add(Dense(13, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# Compile model
model.compile(loss=root_mean_squared_error, optimizer='adam')
return model
estimator는 아래와 같이 지정한다. verbose를 0보다 높은 값을 셋팅해야 디버깅이 가능하다.
아래와 같이 sklearn estimator로 사용 가능하다.
import numpy
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
# kfold = KFold(n_splits=10, random_state=seed)
# results = cross_val_score(estimator, x_train, y_train, cv=kfold)
# print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std()))
estimator.fit(x_train, y_train)