더북(TheBook)

model = Sequential( )

우리는 이 인공지능 모델을 시퀀셜(Sequential) 방식으로 개발합니다. 케라스는 시퀀셜 모델을 통해 이러한 형태의 딥러닝 모델을 쉽게 개발할 수 있도록 도와줍니다. 지금부터 딥러닝에 사용할 모델(model)을 시퀀셜 모델(Sequential)로 정의합니다.

model.add(Dense(512, input_shape=(784,)))

모델에 층을 추가합니다. 추가하는 명령어는 add입니다. 바로 앞에서 만든 딥러닝 모델(model)이 가지고 있는 함수를 사용하기 때문에 model 뒤에 점을 찍은 후 add 함수를 적습니다. 이때 층이 어떤 형태인지를 설정하기 위해 Dense 함수를 사용합니다. Dense 함수의 첫 번째 인자는 해당 은닉층의 노드 수이며, 두 번째 인자인 input_shape은 입력하는 데이터의 형태입니다.

우리가 입력하는 데이터의 형태(input_shape)는 (784, )이며, 첫 번째 은닉층의 노드는 512개로 구성되어 있습니다.

model.add(Activation('relu'))

다음 층으로 값을 전달할 때 어떤 활성화 함수를 사용하여 전달할지를 결정합니다. 여기서는 렐루(relu) 함수를 사용합니다. 렐루 함수는 5.2절 활성화 함수에서 살펴보았습니다.

model.add(Dense(256))

다음 층을 추가합니다. 두 번째 은닉층은 256개의 노드로 구성되어 있습니다. 두 번째 은닉층부터는 입력받는 노드를 설정해 줄 필요가 없습니다. 따라서 사용자가 굳이 신경 쓰지 않아도 되죠. 이러한 점이 바로 케라스를 사용하는 이유입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.