Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

TensorFlow를 사용하여 Python에서 Fashion MNIST 데이터 세트에 대한 모델을 훈련하는 방법은 무엇입니까?


Tensorflow는 Google에서 제공하는 기계 학습 프레임워크입니다. 알고리즘, 딥 러닝 애플리케이션 등을 구현하기 위해 Python과 함께 사용되는 오픈 소스 프레임워크입니다. 연구 및 생산 목적으로 사용됩니다.

'tensorflow' 패키지는 아래 코드 줄을 사용하여 Windows에 설치할 수 있습니다.

pip install tensorflow

Tensor는 TensorFlow에서 사용되는 데이터 구조입니다. 흐름도에서 가장자리를 연결하는 데 도움이 됩니다. 이 흐름도를 '데이터 흐름 그래프'라고 합니다. 텐서는 다차원 배열 또는 목록에 불과합니다.

'Fashion MNIST' 데이터셋에는 다양한 종류의 의복 이미지가 포함되어 있습니다. 10가지 카테고리에 속하는 70,000개 이상의 옷에 대한 회색조 이미지가 포함되어 있습니다. 이 이미지는 저해상도(28 x 28픽셀)입니다.

Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook 위에 구축되었습니다. 다음은 코드입니다 -

예시

print("The model is fit to the data")
model.fit(train_images, train_labels, epochs=15)

print("The accuracy is being computed")
test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)
print('\nThe test accuracy is :', test_acc)

코드 크레딧 - https://www.tensorflow.org/tutorials/keras/classification

출력

The model is fit to the data
Epoch 1/15
1875/1875 [==============================] - 4s 2ms/step - loss: 0.6337 - accuracy: 0.7799
Epoch 2/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3806 - accuracy: 0.8622
Epoch 3/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3469 - accuracy: 0.8738
Epoch 4/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3131 - accuracy: 0.8853
Epoch 5/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2962 - accuracy: 0.8918
Epoch 6/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2875 - accuracy: 0.8935
Epoch 7/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2705 - accuracy: 0.8998
Epoch 8/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2569 - accuracy: 0.9023
Epoch 9/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2465 - accuracy: 0.9060
Epoch 10/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2440 - accuracy: 0.9088
Epoch 11/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2300 - accuracy: 0.9143
Epoch 12/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2255 - accuracy: 0.9152
Epoch 13/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2114 - accuracy: 0.9203
Epoch 14/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2101 - accuracy: 0.9211
Epoch 15/15
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2057 - accuracy: 0.9224
The accuracy is being computed
313/313 - 0s - loss: 0.3528 - accuracy: 0.8806

The test accuracy is : 0.8805999755859375

설명

  • 먼저 훈련 데이터를 공급하고 모델을 구축하여 모델을 훈련합니다. 'train_images' 및 'train_labels'는 입력 데이터의 배열입니다.

  • 모델은 이미지를 해당 레이블로 매핑하기 위해 기울입니다.

  • 'test_images'는 테스트 데이터를 저장합니다.

  • 테스트 데이터 세트가 활용되면 예측이 테스트 데이터 세트에 있는 데이터의 실제 레이블과 일치합니다.

  • 'model.fit' 메서드를 호출하여 moel을 학습 데이터 세트에 맞출 수 있습니다.

  • 'model.evaluate' 함수는 훈련과 관련된 정확도와 손실을 제공합니다.