Ошибка из памяти в opencv3.0, которая запускается внутри контейнера докеров

Ошибка OpenCV: Недостаточно памяти (не удалось выделить 995522496 байт) в OutOfMemoryError.

base_features, base_descs = detector.detectAndCompute(base_img, None) 

В этой конкретной строке длина («len (base_descs)») base_desc составляет около 70000. base_desc – это массив numpy. В настоящее время я использую 4 ГБ ОЗУ, но при этом он показывает эту ошибку.

Я запускаю этот код внутри контейнера докера, приведенный выше код работает нормально, когда я запускаю код python без использования контейнера в системе.

2 Solutions collect form web for “Ошибка из памяти в opencv3.0, которая запускается внутри контейнера докеров”

Во-первых, попробуйте запустить некоторую docker stats чтобы увидеть использование памяти и ограничение вашего контейнера во время выполнения вашего процесса контейнера.

Затем попробуйте увеличить лимит памяти для вашего контейнера ( -m ): см. « Как измерить производительность в Docker? ».

Как предложил VonC, я попытался запустить статистику докеров. Я запускал свой контейнер и делал статистику докеров, чтобы проверить статистику моего контейнера. Использование памяти увеличилось на моем контейнере, но было ограничено 5.028 ГБ, как видно ниже

  CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O gigantic_cori 0.02% 4.6 GB / 5.028 GB 2.02% 44.43 MB / 20.51 MB 580.2 MB / 3.196 GB 

Таким образом, увеличение ОЗУ было бы решением вышеупомянутой проблемы или оптимизации кода, чтобы требования к ОЗУ уменьшались. Вышеупомянутая проблема возникла внутри контейнера, потому что контейнер, работающий внутри гостевого os (Ubuntu14.04), имел только 4 ГБ ОЗУ, тогда как когда я запускал код в моем хосте os (Windows 8.1), оперативная память, которая у него была, составляла 8 ГБ и, следовательно, ошибка там не поступала.

  • Сохранение видео не работает в opencv2-python
  • OpenCV не поставляется с «внешними» библиотеками
  • Ошибка типа: только массивы длиной-1 могут быть преобразованы в сканирование Python
  • Нарисовать самую длинную линию в контурах OPENCV
  • AttributeError: объект 'module' не имеет атрибута 'ORB'
  • TypeError: Требуемый аргумент 'outImg' (поз. 6) не найден
  • Как оптимизировать эту итерацию изображения в numpy?
  • Python - лучший язык программирования в мире.