#python
Вопрос:
Я пытаюсь запустить функцию кода, которая убивает мой код, потому что у него заканчивается оперативная память. Я не могу оптимизировать способ написания кода, так как это функция из пакета, которым я не владею. Есть ли способ разрешить выполнение кода (с более медленной скоростью) без уничтожения кода?
Комментарии:
1. В общем случае, нет. В конкретном случае вам нужно будет объяснить, какие части памяти можно заменить, а это значит, что вам придется переписать код, чтобы сообщить об этом компьютеру.
2. Какую ОС вы используете? Возможно, удастся настроить или отключить убийцу OOM в вашей системе, хотя это может означать, что весь компьютер выйдет из строя или перестанет реагировать, когда вы начнете заменять все больше и больше необходимой логики из памяти, чтобы освободить место для вашей запущенной программы. Если используемая вами библиотечная функция действительно настолько неэффективна, вам может потребоваться написать свою собственную версию, которая потребляет меньше памяти, или запустить ее на меньшем наборе данных.
3. Вам необходимо предоставить более подробную информацию. Какова сложность памяти используемого вами алгоритма, можете ли вы изменить свои входные данные, чтобы они имели меньшую память, например, используя int8 вместо int64, или вы можете переписать алгоритм, можете ли вы частично выполнить алгоритм по частям и собрать все результаты? Слишком много неизвестного, чтобы ответить, но исправить это, вероятно, непросто.
4. быстрый и грязный — учитывая предоставленную информацию — Google Colab может быть быстрым (временным) решением в случае непредвиденных обстоятельств.