TensorFlow: классифицировать изображение - PullRequest
2 голосов
/ 11 октября 2019

Я следую учебному пособию по классификации изображений с TensorFlow 2.0: https://www.tensorflow.org/tutorials/images/classification

Учебное пособие показывает, как построить и обучить модель, но я не понимаю, как на самом деле использовать модель.

Я ищу способ передать изображение (желательно просто его путь) и получить какой-то результат классификации. Примерно так:

result = model.evaluate('path/to/image.jpg')
# result == {'cat': 0.92, 'dog': 0.08}

Как это реализовать? Кроме того, где сохраняется модель и как получить к ней доступ после завершения обучения?

1 Ответ

2 голосов
/ 11 октября 2019

Для конкретного случая распечатки результата процентной вероятности того, что изображение является либо X% cat,% Y dog, , это конкретное руководство по тензорному потоку может быть более полезным.

В нем рассказывается, как составить график вероятности в процентах, а также большинство основ использования тензорного потока.

После того, как вы обучите свою модель, вы можете использовать еще немного кода для отображения результатов вграфическим способом, как следующий код из учебника:

def plot_image(i, predictions_array, true_label, img):
  predictions_array, true_label, img = predictions_array, true_label[i], img[i]
  plt.grid(False)
  plt.xticks([])
  plt.yticks([])

  plt.imshow(img, cmap=plt.cm.binary)

  predicted_label = np.argmax(predictions_array)
  if predicted_label == true_label:
    color = 'blue'
  else:
    color = 'red'

  plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label],
                                100*np.max(predictions_array),
                                class_names[true_label]),
                                color=color)

def plot_value_array(i, predictions_array, true_label):
  predictions_array, true_label = predictions_array, true_label[i]
  plt.grid(False)
  plt.xticks(range(10))
  plt.yticks([])
  thisplot = plt.bar(range(10), predictions_array, color="#777777")
  plt.ylim([0, 1])
  predicted_label = np.argmax(predictions_array)

  thisplot[predicted_label].set_color('red')
  thisplot[true_label].set_color('blue')

Затем, используя следующий код, вы можете составить несколько графиков о результатах: enter image description here

Что касается доступа к вашей модели и ее сохранения, может пригодиться следующее руководство по тензорному потоку .

Надеюсь, это поможет!

...