TensorFlow는 구글(Google)에서 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 파이썬과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 용도로 활용되며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 사용됩니다. 텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조로, '데이터 흐름 그래프(Data Flow Graph)'라고 불리는 플로우 다이어그램에서 노드 간의 엣지(edge)를 연결하는 역할을 합니다. 텐서는 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다.
'tensorflow' 패키지는 Windows 환경에서 아래 코드 한 줄로 간단히 설치할 수 있습니다.
pip install tensorflow
회귀(regression) 문제의 목표는 가격, 확률, 비가 올지 여부 등과 같은 연속형 또는 이산형 변수의 출력값을 예측하는 것입니다.
이번 글에서 사용할 데이터셋은 'Auto MPG' 데이터셋입니다. 이 데이터셋에는 1970년대와 1980년대 자동차들의 연비 정보가 담겨 있으며, 무게(weight), 마력(horsepower), 배기량(displacement) 등 다양한 특성이 포함되어 있습니다. 우리는 이 데이터를 바탕으로 특정 차량의 연비를 예측하는 것이 목표입니다.
아래 코드는 Google Colaboratory에서 실행됩니다. Google Colab(Colaboratory)은 브라우저에서 바로 파이썬 코드를 실행할 수 있게 해주며, 별도의 설정 작업 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다. 다음은 코드 스니펫입니다.
예제
print("모델을 빌드하고 컴파일합니다")
dnn_model = build_compile_model(normalizer)
print("모델의 통계 요약 정보를 출력합니다")
dnn_model.summary()
print("데이터를 모델에 학습시킵니다")
history = dnn_model.fit(
train_features, train_labels,
validation_split=0.2,
verbose=0, epochs=100)
print("학습 단계(에포크)별 오류 변화를 시각화합니다")
plot_loss(history)
print("테스트 데이터로 예측 성능을 평가합니다")
test_results['dnn_model'] = dnn_model.evaluate(test_features, test_labels, verbose=0)
pd.DataFrame(test_results, index=['Mean absolute error [MPG]']).T코드 출처 - https://www.tensorflow.org/tutorials/keras/regression
출력 결과


설명
DNN 모델을 빌드하고 컴파일합니다.
'summary' 함수를 사용하여 데이터 개수(count), 평균(mean), 중앙값(median) 등의 통계 정보를 출력합니다.
컴파일된 모델을 학습 데이터에 학습(fit)시킵니다.
학습 단계 수와 예측 오류 간의 관계를 콘솔에 그래프로 시각화하여 확인할 수 있습니다.
DNN 모델은 선형 회귀(linear regression) 모델보다 더 우수한 예측 성능을 보여줍니다.