Я пишу проект, основанный на tensorflow
, но который может быть предоставлен одним из двух pip
пакетов: tensorflow
или tensorflow-gpu
.Мой проект отлично работает с любым из них, но я не хочу, чтобы люди, работающие на нем без поддержки gpu, устанавливали дополнительные издержки, но я все же хочу, чтобы люди, работающие на машинах с поддержкой gpu, могли использовать это.Есть ли способ отметить в моем файле requirements.txt
, что мне нужно либо tensorflow
или tensorflow-gpu
, но не оба?
РЕДАКТИРОВАТЬ:
В этом конкретном случае следует отметить, что с точки зрения программиста оба tensorflow
и tensorflow-gpu
идентичны, так как оба обеспечивают модуль tensorflow
который имеет те же функции / классы / методы и т. д. и отличается только тем, что tensorflow-gpu
выигрывает от ускорения графического процессора.Проблема, с которой я сталкиваюсь, заключается в том, что если я добавлю tensorflow
в requirements.txt
, то для запуска с ускорением GPU пользователи должны будут сделать pip install -r requirements.txt && pip uninstall tensorflow && pip install tensorflow-gpu
, что не идеально, и если я вместо этого введу tensorflow-gpu
в requirements.txt
, тогда потребуется куча ненужных системных библиотек (CUDNN и т. Д.), И они не будут работать "из коробки" для пользователей, не использующих GPU.
ИЗМЕНИТЬ СНОВА
В качестве обходного пути я решил предоставить два разных файла требований, requirements.txt
и requirements-gpu.txt
, каждый из которых включает в себя общий -r .requirements-core.txt
и добавить соответствующую им версию tenorflow.Таким образом, люди, которым нужна поддержка графических процессоров, могут pip install -r requirements-gpu.txt
, но стандарт pip install -r requirements.txt
все равно будет работать "из коробки" для всех.