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

Tensorflow와 사전 훈련된 모델은 Python을 사용하여 데이터를 평가하고 예측하는 데 어떻게 사용할 수 있습니까?

<시간/>

Tensorflow와 사전 훈련된 모델은 'evaluate' 및 'predict' 방법을 사용하여 데이터를 평가하고 예측하는 데 사용할 수 있습니다. 입력 이미지 배치가 먼저 병합됩니다. sigmoid 함수는 로짓 값을 반환하도록 모델에 적용됩니다.

자세히 알아보기: TensorFlow란 무엇이며 Keras가 TensorFlow와 함께 신경망을 생성하는 방법은 무엇입니까?

하나 이상의 레이어를 포함하는 신경망을 컨볼루션 레이어라고 합니다. Convolutional Neural Network를 사용하여 학습 모델을 구축할 수 있습니다.

우리는 사전 훈련된 네트워크에서 전이 학습의 도움으로 고양이와 개의 이미지를 분류하는 방법을 이해할 것입니다. 이미지 분류를 위한 전이 학습 배후의 직관은 모델이 크고 일반적인 데이터 세트에서 훈련된 경우 이 모델을 사용하여 시각적 세계에 대한 일반 모델로 효과적으로 사용할 수 있다는 것입니다. 기능 맵을 학습했을 것이므로 사용자가 대규모 데이터 세트에서 대규모 모델을 학습하여 처음부터 시작할 필요가 없습니다.

자세히 알아보기: 맞춤형 모델은 어떻게 사전 훈련될 수 있습니까?

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

예시

print("Evaluation and prediction")
loss, accuracy = model.evaluate(test_dataset)
print('Test accuracy is :', accuracy)
print("The batch of image from test set is retrieved")
image_batch, label_batch = test_dataset.as_numpy_iterator().next()
predictions = model.predict_on_batch(image_batch).flatten()
print("The sigmoid function is applied on the model, it returns logits")
predictions = tf.nn.sigmoid(predictions)
predictions = tf.where(predictions < 0.5, 0, 1)
print('Predictions are:\n', predictions.numpy())
print('Labels are:\n', label_batch)

코드 크레딧 -https://www.tensorflow.org/tutorials/images/transfer_learning

출력

Evaluation and prediction
6/6 [==============================] - 3s 516ms/step - loss: 0.0276 - accuracy: 0.9844
Test accuracy is : 0.984375
The batch of image from test set is retrieved
The sigmoid function is applied on the model, it returns logits
Predictions are:
[1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1]
Labels are:
[1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 0 1]

설명

  • 이제 모델을 사용하여 데이터를 예측하고 평가할 수 있습니다.
  • 이미지가 입력으로 전달되면 예측이 수행됩니다.
  • 이미지가 개인지 고양이인지 예측해야 합니다.