Каков наилучший способ сжать мои данные в lmdb

У меня есть большой набор данных, который делает мой lmdb огромным. Для 16.000 образцов моя база данных уже 20 ГБ. Но в общей сложности у меня есть 800 000 изображений, которые в конечном итоге будут содержать огромное количество данных. Есть ли способ сжать lmdb? Или лучше использовать файлы HDF5? Я хотел бы знать, если кто-нибудь знает, возможно, лучшее решение этой проблемы.

2 ответа

Решение

Если вы посмотрите внутрь ReadImageToDatum функция в io.cpp он может хранить изображение в сжатом (JPG / PNG) формате или в необработанном формате. Чтобы использовать сжатый формат, вы можете сжать загруженное изображение, используя cv::imencode, Теперь вы просто установите данные для сжатых данных и установите encoded флаг. Затем вы можете сохранить данные в lmdb,

Существуют различные методы для уменьшения размера ввода, но многое зависит от вашего приложения. Например, изображения набора данных ILSVRC-2012 могут быть изменены до 256x256 пикселей без вредного влияния на время обучения или точность модели. Это уменьшает набор данных с 240 ГБ до 40 ГБ. Может ли ваш набор данных потерять точность из-за простого "физического" сжатия? Как мало у вас должен быть набор данных?

Боюсь, что я недостаточно работал с файлами HDF5, чтобы иметь обоснованное мнение.

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