es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Deje que pip-compile determine las versiones de los paquetes de tensorflow basados en la versión instalada de tensorflow.

Tengo el siguiente Dockerfile:

ARG TF_VERSION
FROM tensorflow/tensorflow:${TF_VERSION}-gpu-jupyter AS base

COPY requirements.in /opt/app/requirements.in
WORKDIR /opt/app
RUN python -m pip install pip-tools && \
pip-compile requirements.in && \
python -m pip install -r requirements.txt

y el siguiente requirements.in:

tensorflow-addons
tensorflow-data-validation
tensorflow-datasets
tensorflow-hub
tensorflow-metadata
tensorflow-model-analysis
tensorflow-model-optimization
tensorflow-probability
tensorflow-serving-api
tensorflow-transform
tensorflow_hub

La idea es poder construir la imagen Docker con una versión de tensorflow como argumento, como:

docker build -t demo . –build-arg TF_VERSION=2.7.0

y permitir que pip-compile averigüe las versiones de los módulos adicionales de tensorflow compatibles con la versión de tensorflow que viene con la imagen Docker.

Pero esto falla con:

No se pudo encontrar una versión que coincida con tensorflow! = 2.0.*, ! = 2.1.*, ! = 2.2.*, ! = 2.3.*, ! = 2.4.*, ! = 2.5.,<2.7,<3,>=1.15.2,>=2.7.0 (desde tensorflow-transform == 1.3.0->-r requirements.in (línea 10))
Intentado: 0.12.1, 1.0.0, 1.0.1, 1.1.0, 1.2.0, 1.2.1, 1.3.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.9.0, 1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.12.2, 1.12.3, 1.13.1, 1.13.2, 1.14.0, 1.15.0, 1.15.2, 1.15.3, 1.15.4, 1.15.5, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5.0, 2.5.1, 2.5.2, 2.6.0, 2.6.1, 2.6.2
Se omitieron pre-versiones: 2.2.0rc0, 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.3.0rc0, 2.3.0rc1, 2.3.0rc2, 2.4.0rc0, 2.4.0rc1, 2.4.0rc2, 2.4.0rc3, 2.4.0rc4, 2.5.0rc0, 2.5.0rc1, 2.5.0rc2, 2.5.0rc3, 2.6.0rc0, 2.6.0rc1, 2.6.0rc2
Hay versiones incompatibles en las dependencias resueltas:
tensorflow! = 2.0.
,! = 2.1.,! = 2.2.,! = 2.3.,! = 2.4.,! = 2.5.,<3,>=1.15.2 (desde tensorflow-model-analysis == 0.34.1->-r requirements.in (línea 6))
tensorflow<3,>=2.7.0 (desde tensorflow-serving-api == 2.7.0->-r requirements.in (línea 9))
tensorflow! = 2.0.
,! = 2.1.,! = 2.2.,! = 2.3.,! = 2.4.,! = 2.5.,<2.7,>=1.15.2 (desde tensorflow-transform == 1.3.0->-r requirements.in (línea 10))
tensorflow! = 2.0.
,! = 2.1.,! = 2.2.,! = 2.3.,! = 2.4.,! = 2.5.*,<3,>=1.15.2 (desde tensorflow-data-validation == 1.3.0->-r requirements.in (línea 2))

¿Cómo resuelvo esto sin agregar manualmente restricciones de versión en mi archivo requirements.in?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puedes solucionarlo usando la bandera –allow-unsafe al ejecutar pip-compile en el Dockerfile. Esta bandera permitirá a pip-compile ignorar las restricciones de versión e instalar la última versión de los paquetes que son compatibles con la versión de TensorFlow especificada en el argumento TF_VERSION.

Comments are closed.