Отлично, а как нам понять на что похоже изображение? В данном случае нам не нужно классифицировать изображение с помощью нейросети (да и посмотрим правде в глаза, лень её учить‑переучивать), нам нужно просто построить вектор признаков для входящего изображения и сопоставить его с таким же набором векторов признаков для изображений, имеющихся в базе данных, и найти наиболее близкие, допустим 5, вариантов. Нейросети, используемые для распознавания изображений можно использовать для выделения признаков (это конечно зависит от архитектуры сети, но в случае CNN это как правило так) и как раз этим свойством мы и воспользуемся, взяв заранее натренированную VGG16. В модель VGG16 загрузим заранее полученные веса, полученные для набора данных «imagenet».