Comments 9
Как найти имя слоя — это отдельный анекдот, поэтому я смотрел в исходники модели.feat_extractor.summary() — здесь же все имена слоев есть.
vgg16_net = VGG16(weights='imagenet', include_top=False) — такой импорт удаляет последние полносвязанные слои.
Да, интересное уточнение.
И автор, как насчёт того, что бы весь код положить в колаб для наглядности?
Пара моментов резанули прямо:
- theano это прямо очень deprecated, уже пару лет как мертвый проект (это даже в их GitHub README.md написано) — да и keras, как отдельный проект, уже вроде не развивается. По хорошему, если нужен именно keras, то надо использовать tensorflow2
- Считать полную матртцу расстояний это безумие — а если бы товаров было 30000? Или 100000? Если есть сервис (а для tensorflow2 моделей, например, есть готовые образы tfserving и обширные туториалы по ним), который возвращает выход нейросети, то лучше использовать промышленные решения (например, https://github.com/milvus-io/milvus) для поиска нужого числа похожих товаров
Любопытный подход ) И рабочий при этом.
На самом деле полную матрицу косинусных расстояний хранить не обязательно. В движках CMS на карточках товаров как правило есть поля для указания рекомендаций. На каждый товар имеет смысл делать не больше 10 рекомендаций (бОльшее количество, пользователь сайта вряд ли воспримет). Вот и получается, что достаточно будет для каждой SKU хранить с десяток наиболее близких «соседей». То есть для N SCU получится матрица 10*N.
На самом деле полную матрицу косинусных расстояний хранить не обязательно. В движках CMS на карточках товаров как правило есть поля для указания рекомендаций. На каждый товар имеет смысл делать не больше 10 рекомендаций (бОльшее количество, пользователь сайта вряд ли воспримет). Вот и получается, что достаточно будет для каждой SKU хранить с десяток наиболее близких «соседей». То есть для N SCU получится матрица 10*N.
1.То есть, чтобы уменьшить матрицу вы просто умножили все значения на 100 и перегнали в uint? Тогда, наверно, многие товары будут пересекаться.
Можете отдельно матрицу выложить на google.drive или yandex?
2.В скачивании картинок urllib.request тоже депрекейтид. Можно просто requests использовать и добавить мультипоточность, чтобы «очень быстро скачивать» )
Можете отдельно матрицу выложить на google.drive или yandex?
2.В скачивании картинок urllib.request тоже депрекейтид. Можно просто requests использовать и добавить мультипоточность, чтобы «очень быстро скачивать» )
Sign up to leave a comment.
Применение предобученной модели VGG16 для рекомендаций на основе изображений товаров