TensorFlow는 구글(Google)에서 제공하는 머신러닝 프레임워크입니다. 오픈소스 프레임워크로, 파이썬(Python)과 함께 사용하여 다양한 알고리즘과 딥러닝 애플리케이션 등을 구현할 수 있습니다. 연구 목적뿐만 아니라 실제 프로덕션 환경에서도 널리 활용되고 있습니다.
텐서(Tensor)는 TensorFlow에서 사용되는 데이터 구조입니다. 텐서는 데이터 흐름 다이어그램, 즉 '데이터 플로우 그래프(Data Flow Graph)'에서 노드들을 연결하는 역할을 합니다. 쉽게 말해 텐서란 다차원 배열 또는 리스트를 의미합니다.
이번 예제에서 사용하는 데이터셋은 'Auto MPG' 데이터셋입니다. 이 데이터셋은 1970년대와 1980년대 자동차들의 연비 정보를 담고 있으며, 무게(weight), 마력(horsepower), 배기량(displacement) 등의 특성을 포함합니다. 우리의 목표는 이러한 특성들을 바탕으로 특정 차량의 연비를 예측하는 것입니다.
아래 코드는 Google Colaboratory(코랩) 환경에서 실행됩니다. Google Colab은 브라우저에서 별도 설정 없이 파이썬 코드를 실행할 수 있게 해주며, GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. 코랩은 Jupyter Notebook을 기반으로 만들어졌습니다. 다음은 코드 예시입니다.
코드 예시
print("DNN model")
history = dnn_horsepower_model.fit(
train_features['Horsepower'], train_labels,
validation_split=0.2,
verbose=0, epochs=100)
print("Error with respect to every epoch")
plot_loss(history)
x = tf.linspace(0.0, 250, 251)
y = dnn_horsepower_model.predict(x)
plot_horsepower(x, y)
test_results['dnn_horsepower_model'] = dnn_horsepower_model.evaluate(
test_features['Horsepower'], test_labels,
verbose=0)코드 출처 - https://www.tensorflow.org/tutorials/keras/regression
실행 결과

코드 설명
DNN은 심층 신경망(Deep Neural Network)을 의미하며, 이번 예제에서는 'Horsepower(마력)'라는 단일 입력값을 사용합니다.
fit() 메서드를 통해 모델을 학습 데이터에 맞춰 학습시킵니다. 이때 validation_split=0.2 옵션으로 학습 데이터의 20%를 검증용으로 분리하여 과대적합 여부를 확인합니다.
'history' 객체에는 에포크(epoch)별 손실(loss) 통계가 저장되며, plot_loss() 함수를 통해 학습 진행 상황을 시각화할 수 있습니다.
predict() 메서드로 예측을 수행하고, evaluate() 메서드를 사용해 테스트 데이터 기준으로 모델 성능을 평가합니다.