본문 바로가기

딥러닝

2. DNN - FC layer 예제 코드

1. 환경

 

 예제 코드는 Google Colab을 이용해서 돌리고, 프레임 워크는 tensorflow2를 이용해보겠습니다. 

 

 Colab을 이용하는 이유는 기본적으로 모든 사람이 어떤 환경에서도 사용할 수 있다는 점이 있습니다. 프레임워크로 Tensorflow2를 이용하는 이유는 이제 tf의 기본 api로 keras api를 이용함으로써 코딩하기도 쉽고 tf 자체가 기능이 강력하기 때문입니다. Colab을 활용하는 법에 관련해서는 필요하다면 다음에 포스팅 하도록 하겠습니다.

 

2. 코드

 

 Tensorflow2에서 제공하는 Mnist 데이터를 이용하여, 간단한 FC layer를 구성하는 코드는 아주 쉽습니다.

 제가 작성한 Colab 코드 입니다 https://colab.research.google.com/drive/1uwEeGhmrjS71DShcYSgC-7BC9JlyWQbM

 

 

Google Colaboratory

 

colab.research.google.com

그리고 코드를 요약하면 다음과 같습니다. 

.
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test,  y_test, verbose=2)

 

 위에 걸어놓은 링크를 가보시면 코드에 대해서 설명을 적어두었습니다.

 

코드는 다음과 같은 내용을 포함합니다.

1. Colab 환경에서 Tensorflow2로 딥러닝 코드를 작성하는 법

2. Mnist Data를 불러와서 훈련시키는 법

3. FC layer를 활용해서 모델 구조를 작성하는 법

   - Layer의 갯수 차이에 따른 성능 차이

   - 활성화 함수로써 ReLU를 썼을때와 안썼을때의 성능 차이

   - Dropout을 사용했을때와 안했을때의 성능 차이

 

 ReLU, Softmax 등의 활성화 함수 그리고 adam 등의 optimizer, loss, metric 등은 다음에 기회가 되면 다루겠습니다.