[Python] DNN(Keras)

39. DNN(keras)

39.1 실습예제(mnist)

# 필기체를 분류하는 DNN 구현
# 심층신경망(Deep Neural Network, DNN) 은닉층을 많이 쌓아서 만든 인공신경망
# 학습데이터가 적거나 복잡한 이미지에 더 우수한 성능을 보이는 기법
%matplotlib inline
import numpy as np
import pandas as pd
import os
from keras.utils import up_utils
from keras import layers, models, datasets

# seaborn
import seaborn as sns
sns.set(style = 'white', font_scale = 1.7)
sns.set_style('ticks')

# font for matplotlib
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
plt.rcParams['savefig.dpi'] = 200
fm.get_fontconfig_fonts()
font_location = 'c:/windows/fonts/NanumGothicBold.ttf'
font_name = fm.FontProperties(fname = font_location).get_name()
matplotlib.rc('font', family = font_name)
# 분류 DNN 모델 구현
def make_model(input_number, hidden_layers, output_number):
  # 모델 초기화
  model = models.Sequential()
  # 첫번째 은닉층
  model.add(layers.Dense(hidden_layers[0], activation='relu', input_shape=(input_number,), name='Hidden-1'))
  # 두번째 은닉층
  model.add(layers.Dense(hidden_layers[1], activation='relu', name='Hidden-2'))
  # 드롭아웃 계층 Dropout(p) p라는 확률로 출력 노드의 신호를 보내다 말다 함, 과적합 방지
  model.add(layers.Dropout(0.2))
  # 출력층
  model.add(layers.Dense(output_number, activation='softmax'))
  model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model

'programming > python' 카테고리의 다른 글

[Python] 오토인코더(keras)  (0) 2019.11.04
[Python] 합성곱 신경망(CNN)  (0) 2019.10.31
[Python] DNN(Keras)  (0) 2019.10.30
[Python] 인공신경망 실습(Keras)  (0) 2019.10.29
[Python] 회귀분석(keras)  (0) 2019.10.25
[Python] Tensorflow 실습  (0) 2019.09.11

댓글(0)

Designed by JB FACTORY