신경망의 핵심 구성 요소는 층(layer)입니다. 층은 데이터 처리 모듈로, 텐서를 받아 텐서를 출력하는 튜닝 가능한 함수로 생각할 수 있습니다. 이 예제의 신경망은 하나의 밀집 층(dense layer)으로 구성됩니다. 이 층에는 매개변수 inputShape: [1]에 정의된 것처럼 입력 텐서의 크기가 제한됩니다. 이 층이 하나의 값을 가진 1D 텐서 형태의 입력을 기대한다는 의미입니다. 각 샘플에 대해 이 밀집 층의 출력 형태는 항상 1D 텐서입니다. 하지만 출력 차원의 크기는 units 매개변수에서 조정할 수 있습니다. 여기에서는 timeSec에 해당하는 하나의 숫자를 정확히 예측하려고 하기 때문에 하나의 출력 값만 있으면 됩니다.
밀집 층의 핵심은 각 입력과 출력 사이에서 일어나는 튜닝 가능한 곱셈과 덧셈입니다. 하나의 입력과 하나의 출력만 있으므로 이 모델은 고등학교 수학에 나오는 단순한 선형 방정식 y = m * x + b입니다. 그림 2-3에 나와 있듯이 밀집 층은 내부적으로 m을 커널(kernel), b를 편향(bias)5이라고 부릅니다. 여기에서는 입력(sizeMB)과 출력(timeSec) 사이의 관계를 위한 선형 모델을 만들었습니다.
timeSec = kernel * sizeMB + bias
▲ 그림 2-3 간단한 선형 회귀 모델 그림. 이 모델은 하나의 층을 가진다. 모델의 튜닝 가능한 파라미터6(또는 가중치(weight))인 커널과 편향이 밀집 층 안에 표현되어 있다.