TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 작업에 활용되며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 쓰입니다. TensorFlow는 복잡한 수학 연산을 빠르게 수행할 수 있도록 돕는 최적화 기법들을 내장하고 있습니다.
이러한 성능은 NumPy와 다차원 배열 기반 처리 덕분입니다. 이 다차원 배열은 '텐서(tensor)'라고도 불립니다. TensorFlow 프레임워크는 딥 뉴럴 네트워크 작업을 지원하며, 뛰어난 확장성을 갖추고 있고 다양한 인기 데이터셋을 함께 제공합니다. GPU 연산을 활용해 리소스 관리를 자동화할 수 있으며, 방대한 머신러닝 라이브러리와 잘 정비된 문서를 갖추고 있습니다. 또한 딥 뉴럴 네트워크 모델을 실행하고 학습시켜, 데이터셋의 특성을 예측하는 애플리케이션을 만들 수 있습니다.
TensorFlow 설치
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 설치할 수 있습니다.
pip install tensorflow
텐서란 무엇인가?
텐서(Tensor)는 TensorFlow에서 사용되는 데이터 구조로, 플로우 다이어그램의 엣지(edge)를 연결하는 역할을 합니다. 이 플로우 다이어그램을 '데이터 흐름 그래프(Data Flow Graph)'라고 부릅니다. 텐서는 본질적으로 다차원 배열 또는 리스트이며, 세 가지 주요 속성으로 식별할 수 있습니다.
회귀 문제의 목표
회귀(regression) 문제의 핵심 목표는 가격, 확률, 강수 여부 등 연속형 또는 이산형 변수의 출력값을 예측하는 것입니다.
여기서 사용할 데이터셋은 'Auto MPG' 데이터셋입니다. 이 데이터셋에는 1970년대와 1980년대 자동차들의 연비 정보가 담겨 있으며, 차량 중량(weight), 마력(horsepower), 배기량(displacement) 같은 특성들이 포함되어 있습니다. 우리의 목표는 이 정보를 바탕으로 특정 자동차의 연비를 예측하는 것입니다.
Google Colaboratory 활용
아래 코드는 Google Colaboratory(Colab)에서 실행됩니다. Google Colab은 브라우저에서 Python 코드를 실행할 수 있는 환경으로, 별도 설정 없이 무료로 GPU(그래픽 처리 장치)를 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
예제 코드
hrspwr = np.array(train_features['Horsepower'])
print("The data is being normalized")
hrspwr_normalizer = preprocessing.Normalization(input_shape=[1])
hrspwr_normalizer.adapt(hrspwr)
hrspwr_model = tf.keras.Sequential([
hrspwr_normalizer,
layers.Dense(units=1)
])
print("The statistical data sample ")
hrspwr_model.summary()
print("The predicted output ")
hrspwr_model.predict(hrspwr[:7])
print("The model is being compiled : ")
hrspwr_model.compile(
optimizer=tf.optimizers.Adam(learning_rate=0.1),
loss='mean_absolute_error')코드 출처 - https://www.tensorflow.org/tutorials/keras/regression
실행 결과

코드 설명
'마력(Horsepower)' 값을 입력받아 '연비(MPG)' 값을 예측하는 모델을 만듭니다.
모델의 아키텍처를 정의하여 Keras 모델을 학습시킵니다.
여기서 정의한 모델은 '순차형(Sequential)' 모델로, 단계별로 순서대로 실행되는 구조를 의미합니다.
먼저 입력값인 '마력(horsepower)' 데이터를 정규화합니다.
밀집층(dense layer), 즉 'layers.Dense'를 통해 선형 변환(y = mx + b)을 적용하여 출력값을 생성합니다.
'마력' 데이터를 위한 정규화 레이어를 생성합니다.