Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

TensorFlow와 전복 데이터셋으로 순차(Sequential) 모델 구축하는 방법

Keras에서는 'Sequential' 메서드를 사용하여 순차 모델을 간단하게 구축할 수 있습니다. 이 메서드 안에 레이어의 개수와 종류를 지정하면 됩니다.

관련 글

TensorFlow란 무엇이며, Keras는 TensorFlow와 어떻게 연동되어 신경망을 만들까요?

전복(Abalone) 데이터셋 소개

이번 튜토리얼에서는 전복 데이터셋을 사용합니다. 이 데이터셋에는 전복의 다양한 신체 측정값들이 담겨 있으며, 전복은 바다 달팽이의 일종입니다. 우리의 목표는 나머지 측정값들을 기반으로 전복의 나이(age)를 예측하는 것입니다.

개발 환경

아래 코드는 Google Colaboratory에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정 없이 무료로 GPU(그래픽 처리 장치)에 접근할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

print("The sequential model is being built")
abalone_model = tf.keras.Sequential([
    layers.Dense(64),
    layers.Dense(1)
])
abalone_model.compile(loss = tf.losses.MeanSquaredError(),optimizer = tf.optimizers.Adam())
print("The data is being fit to the model")
abalone_model.fit(abalone_features, abalone_labels, epochs=10)

코드 출처: https://www.tensorflow.org/tutorials/load_data/csv

실행 결과

The sequential model is being built
The data is being fit to the model
Epoch 1/10
104/104 [==============================] - 0s 963us/step - loss: 84.2213
Epoch 2/10
104/104 [==============================] - 0s 924us/step - loss: 16.0268
Epoch 3/10
104/104 [==============================] - 0s 860us/step - loss: 9.4125
Epoch 4/10
104/104 [==============================] - 0s 898us/step - loss: 8.9159
Epoch 5/10
104/104 [==============================] - 0s 912us/step - loss: 7.9076
Epoch 6/10
104/104 [==============================] - 0s 936us/step - loss: 6.8316
Epoch 7/10
104/104 [==============================] - 0s 992us/step - loss: 7.1021
Epoch 8/10
104/104 [==============================] - 0s 1ms/step - loss: 7.0550
Epoch 9/10
104/104 [==============================] - 0s 1ms/step - loss: 6.2762
Epoch 10/10
104/104 [==============================] - 0s 883us/step - loss: 6.5584
<tensorflow.python.keras.callbacks.History at 0x7fda82a35160>

코드 설명

  • 전복 데이터셋의 'age'(나이) 열을 예측하기 위한 회귀(regression) 모델을 구축합니다.
  • 입력 텐서가 하나뿐이므로 순차(Sequential) 모델을 사용하는 것이 적합합니다.
  • 모델을 컴파일한 후, 특성(features)과 레이블(labels)을 'Model.fit' 메서드에 전달하여 학습을 진행합니다.