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

Должен ли я сравнивать каждое тестовое изображение с образцом изображения из каждого класса? Набор тестов содержит около 7400 изображений из 104 классов. Так это будет прогноз 7400 x 104?

Используя tensorflow на tpu, я смог довольно эффективно обучить модель. Однако прогнозирование меток с использованием вышеуказанного метода занимает очень много времени, и, кроме того, вызов прогнозирования модели вызывает утечки памяти, которые в конечном итоге приводят к сбою ядра (память может увеличиться до 30+ ГБ и подсчет).

1 ответ

Решение

Есть несколько способов сделать это:

  • (Не рекомендуется). Это в основном часть того, что вы на самом деле делаете. Вы можете взять несколько изображений из каждого класса и сравнить их со своим тестовым изображением. Допустим, вы выбрали 5 изображений из каждого класса, поэтому вам нужно будет сделать 5*104 прогнозов.
  • Вы можете использовать модель K - Nearest Neighbor, в которой вам нужно будет сделать прогноз для ваших 7400(или подмножества этих) изображений только один раз, то есть создать модель KNN, а затем напрямую использовать KNN Classifier для прогнозирования класса изображения.

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

Другие вопросы по тегам