Я работаю над конкурсом Kaggle Galaxy Zoo с Keras / Tensorflow, но огромное количество данных (много изображений) отправляет мой компьютер в подвешенное состояние. . У меня более или менее обычный ПК (i5) с 48 ГБ оперативной памяти, хотя я не могу использовать свой графический процессор (моя видеокарта не совместима с CUDA). Я использую комбо Ubuntu и Anaconda.
Фактическая проблема заключается в том, что Python выдает «ошибку памяти» при чтении изображений с диска в сложенный массив numpy. Вроде бы моей памяти недостаточно для работы, и я мог представить, что то же самое будет верно для любой серьезной задачи (конечно, есть проекты, не входящие в MNIST-классификацию).
Итак, мой вопрос: что такое и как я могу получить инфраструктуру, способную выполнять работы такого масштаба? Собственно, в чем здесь настоящее узкое место? Объем памяти? Команда top
Linux показывает только около 10% использования памяти в случае запущенного процесса Python, что любопытно.
Конечно, я не на уровне институциональных игроков, поэтому приемлемы только разумные затраты ...
Numpy vs Cython speed в Stack Overflow обсуждает различные способы оптимизации скорости выполнения тяжелых числовых операций с использованием частично-cython оптимизирующего статического компилятора для Python и C.
Как следует из описания пакета частично-cython в приложении Ubuntu Software, необходимо знание как C, так и Python.
Язык Cython является надмножеством языка Python, который дополнительно поддерживает вызов функций C и объявление типов C для переменных и атрибутов класса. Это позволяет компилятору генерировать очень эффективный код C из кода Cython.
blockquote>Я не фанат Анаконды. Хотя python-pip и python3-pip из стандартных репозиториев Ubuntu имеют сложную кривую обучения, они являются более простыми установщиками пакетов Python, которые я могу использовать в долгосрочной перспективе.