텐서플로우(TensorFlow)는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, 파이썬과 함께 사용해 다양한 알고리즘과 딥러닝 애플리케이션을 구현할 수 있습니다. 연구 목적뿐 아니라 실제 프로덕션 환경에서도 널리 활용됩니다.
텐서(Tensor)는 텐서플로우에서 사용하는 핵심 데이터 구조로, 데이터 흐름 그래프(Data Flow Graph)의 엣지를 연결하는 역할을 합니다. 텐서는 본질적으로 다차원 배열 또는 리스트이며, 다음 세 가지 주요 속성으로 특징지을 수 있습니다.
- 랭크(Rank) – 텐서의 차원 수를 나타냅니다. 텐서의 차수(order) 또는 정의된 차원의 개수로 이해할 수 있습니다.
- 타입(Type) – 텐서를 구성하는 요소들의 데이터 타입을 나타냅니다.
- 셰이프(Shape) – 텐서의 행과 열 개수를 함께 나타낸 값입니다.
'tensorflow' 패키지는 아래 명령어 한 줄로 설치할 수 있습니다.
pip install tensorflow
회귀 문제란 무엇일까요?
회귀(regression) 문제의 목표는 가격, 확률, 비가 올지 여부처럼 연속형 또는 이산형 변수의 출력값을 예측하는 것입니다.
Auto MPG 데이터셋 소개
이번 튜토리얼에서 사용할 데이터셋은 'Auto MPG'입니다. 1970년대와 1980년대 자동차의 연비 정보를 담고 있으며, 무게(weight), 마력(horsepower), 배기량(displacement) 등의 특성이 포함되어 있습니다. 이 데이터를 학습하여 특정 자동차의 연비를 예측하는 것이 최종 목표입니다.
순차 모델(Sequential Model)은 층(layer)을 순서대로 쌓아 올려 구성하는 가장 기본적인 신경망 구조입니다.
아래 코드는 Google Colaboratory(코랩)에서 실행했습니다. 코랩은 브라우저만으로 파이썬 코드를 실행할 수 있고, 별도의 설정 없이 GPU에 무료로 접근할 수 있다는 장점이 있으며, Jupyter Notebook을 기반으로 동작합니다.
예제 코드
print("A sequential model is being built with 1 dense layer")
linear_model = tf.keras.Sequential([
normalizer,
layers.Dense(units=1)
])
print("Predictions are being made ")
linear_model.predict(train_features[:10])
linear_model.layers[1].kernel
print("Model is being compiled")
linear_model.compile(
optimizer=tf.optimizers.Adam(learning_rate=0.1),
loss='mean_absolute_error')
print("The model is being fit to the data")
history = linear_model.fit(
train_features, train_labels,
epochs=150,
verbose=0,
validation_split = 0.25)
print("The predicted values are being plotted")
plot_loss(history)
print("The predicted results are being evaluated")
test_results['linear_model'] = linear_model.evaluate(
test_features, test_labels, verbose=0)
코드 출처 – https://www.tensorflow.org/tutorials/keras/regression
실행 결과

코드 설명
- Keras API를 활용해 밀집층(Dense Layer) 하나로 구성된 순차(Sequential) 구조의 모델을 생성합니다.
- 입력 특성을 표준화하는 정규화 계층(normalizer)을 모델의 첫 번째 층으로 배치합니다.
- 선형 회귀의 일반적인 형태인 y = mx + b에 따라 MPG 값을 예측합니다.
- 예측이 끝나면 Adam 옵티마이저(학습률 0.1)와 평균 절대 오차(MAE) 손실 함수를 지정해 모델을 컴파일합니다.
- fit() 메서드로 모델을 학습시키며, 에포크 150회, 검증 데이터 비율 25%로 학습 조건을 정의합니다.
- 학습 과정에서 기록된 손실 변화를 그래프로 시각화해 확인합니다.
- 마지막으로 테스트 데이터셋으로 모델 성능을 평가하고 그 결과를 저장합니다.