Как стать автором
Обновить

Применение предобученной модели VGG16 для рекомендаций на основе изображений товаров

Время на прочтение9 мин
Количество просмотров9.4K
Всего голосов 11: ↑11 и ↓0+11
Комментарии9

Комментарии 9

Как найти имя слоя — это отдельный анекдот, поэтому я смотрел в исходники модели.
feat_extractor.summary() — здесь же все имена слоев есть.
vgg16_net = VGG16(weights='imagenet', include_top=False) — такой импорт удаляет последние полносвязанные слои.

И результат реального применения бы выложить, можно сразу со сравнением VGG16 и VGG19.

Да, спасибо за уточнение. Не знал. На днях соберу в Colab и выложу.

Пара моментов резанули прямо:


  1. theano это прямо очень deprecated, уже пару лет как мертвый проект (это даже в их GitHub README.md написано) — да и keras, как отдельный проект, уже вроде не развивается. По хорошему, если нужен именно keras, то надо использовать tensorflow2
  2. Считать полную матртцу расстояний это безумие — а если бы товаров было 30000? Или 100000? Если есть сервис (а для tensorflow2 моделей, например, есть готовые образы tfserving и обширные туториалы по ним), который возвращает выход нейросети, то лучше использовать промышленные решения (например, https://github.com/milvus-io/milvus) для поиска нужого числа похожих товаров
Прикольно. Не знал. Большое спасибо!
Любопытный подход ) И рабочий при этом.
На самом деле полную матрицу косинусных расстояний хранить не обязательно. В движках CMS на карточках товаров как правило есть поля для указания рекомендаций. На каждый товар имеет смысл делать не больше 10 рекомендаций (бОльшее количество, пользователь сайта вряд ли воспримет). Вот и получается, что достаточно будет для каждой SKU хранить с десяток наиболее близких «соседей». То есть для N SCU получится матрица 10*N.
Интересно. Я почему-то об этом не подумал ))) Реально можно уменьшить матрицу ))) Обязательно воспользуюсь, чтобы оптимизировать решение!
1.То есть, чтобы уменьшить матрицу вы просто умножили все значения на 100 и перегнали в uint? Тогда, наверно, многие товары будут пересекаться.
Можете отдельно матрицу выложить на google.drive или yandex?
2.В скачивании картинок urllib.request тоже депрекейтид. Можно просто requests использовать и добавить мультипоточность, чтобы «очень быстро скачивать» )
Зарегистрируйтесь на Хабре, чтобы оставить комментарий