Estoy tratando de ejecutar algunos proyectos con el nuevo Mac M1. Esos proyectos ya funcionan en el procesador Intel y son utilizados por otros desarrolladores que utilizan Intel.
No puedo construir este Dockerfile simple:
FROM python:3.9 RUN python -m pip install --upgrade pip RUN pip install tensorflow==2.6.2me sale este mensaje:
> [3/3] RUN pip install tensorflow==2.6.2: #6 0.583 ERROR: Could not find a version that satisfies the requirement tensorflow==2.6.2 (from versions: none) #6 0.583 ERROR: No matching distribution found for tensorflow==2.6.2Puedo instalar tensorflow localmente, fuera de Dockerfile. Además, los amigos pueden crear esta imagen desde su Intel Mac.
Incluso traté de ejecutar docker build com con diferentes arquitecturas de consola: i386 y arm64, pero ninguna funcionó.
¿Alguna sugerencia?
EDITAR : es posible que desee verificar la respuesta de menrfa mirando https://github.com/KumaTea/tensorflow-aarch64
El paquete tensorflow no está disponible para armv8.
Supongo que su python local se está ejecutando con rosetta2 (intel x86_64). Puedes verificar eso usando:
python3 -c "import platform; print(platform.machine())" x86_64 La solución obliga a Docker a crear esa imagen también para x86_64 . Es fácil. Simplemente cambie su Dockerfile a:
FROM --platform=linux/x86_64 python:3.9 RUN python -m pip install --upgrade pip RUN pip install tensorflow==2.6.2O, si no desea cambiar su Dockerfile, puede crear esa imagen con:
docker build --platform linux/x86_64 -t myimage .nota de publicación:
como dijo [tyrex] en un comentario, aunque tensorflow se instala en armv8, probablemente fallará debido a algunos errores en la emulación (por ejemplo qemu: uncaught target signal 6 (Aborted) - core dumped ).
Resolvió sus requisitos usando PyTorch en su lugar.
Lo siguiente funciona para mí. (Chip Apple M1 Pro + MacOS 12.1)
Docker: Debian GNU/Linux 11 (ojo de buey)
RUN pip install tensorflow==2.6.0 -f https://tf.kmtea.eu/whl/stable.htmlObviamente gracias a https://github.com/KumaTea/tensorflow-aarch64
Tensorflow actualmente no proporciona archivos binarios (archivos .whl) para linux/arch64 dentro de contenedores docker en M1.
Pero puede usar mi archivo TensorFlow .whl precompilado para M1: https://github.com/diyor28/tf-docker-m1