Как использовать обученную сиамскую сеть для прогнозирования меток для большого набора тестов с более чем 100 классами?
Должен ли я сравнивать каждое тестовое изображение с образцом изображения из каждого класса? Набор тестов содержит около 7400 изображений из 104 классов. Так это будет прогноз 7400 x 104?
Используя tensorflow на tpu, я смог довольно эффективно обучить модель. Однако прогнозирование меток с использованием вышеуказанного метода занимает очень много времени, и, кроме того, вызов прогнозирования модели вызывает утечки памяти, которые в конечном итоге приводят к сбою ядра (память может увеличиться до 30+ ГБ и подсчет).
1 ответ
Решение
Есть несколько способов сделать это:
- (Не рекомендуется). Это в основном часть того, что вы на самом деле делаете. Вы можете взять несколько изображений из каждого класса и сравнить их со своим тестовым изображением. Допустим, вы выбрали 5 изображений из каждого класса, поэтому вам нужно будет сделать 5*104 прогнозов.
- Вы можете использовать модель K - Nearest Neighbor, в которой вам нужно будет сделать прогноз для ваших 7400(или подмножества этих) изображений только один раз, то есть создать модель KNN, а затем напрямую использовать KNN Classifier для прогнозирования класса изображения.
Вы также можете обратиться к блогу, если вы плохо разбираетесь в KNN или хотите посмотреть на реализации кода.