Ошибка из памяти в 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 ГБ и, следовательно, ошибка там не поступала.

  • Ошибка типа: только массивы длиной-1 могут быть преобразованы в сканирование Python
  • KNN train () в cv2 с opencv 3.0
  • openCV 3.0 python LineIterator
  • Как оптимизировать эту итерацию изображения в numpy?
  • Обрезание живой видеопотока в OpenCV
  • Нарисовать самую длинную линию в контурах OPENCV
  • Python: печатать только один раз внутри цикла
  • Использование OpenCL ускоренных функций с OpenCV3 в Python
  • Python - лучший язык программирования в мире.