Compila con el código fuente en Raspberry Pi

Esta guía describe la compilación de un paquete de TensorFlow en un dispositivo Raspberry Pi que ejecute Raspbian 9.0. Si bien las instrucciones pueden funcionar en otras variantes de Raspberry Pi, solo están probadas con esta configuración y solo son compatibles con esta.

Recomendamos compilar de forma cruzada el paquete de TensorFlow para Raspbian. Para compilar el paquete, la compilación cruzada usa una plataforma diferente de la que usa para implementarlo. En lugar de usar la RAM limitada de Raspberry Pi y su procesador relativamente lento, es más sencillo compilar TensorFlow en una máquina anfitrión más potente que ejecute Linux, macOS o Windows.

Configuración del host

Instala Docker

Para simplificar la administración de dependencias, la secuencia de comandos de compilación usa Docker a fin de crear un entorno de desarrollo virtual de Linux para la compilación. Para verificar tu instalación de Docker, ejecuta el siguiente comando: docker run --rm hello-world

Descarga el código fuente de TensorFlow

Usa Git para clonar el repositorio de TensorFlow:

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

La configuración predeterminada del repositorio es la rama de desarrollo master. También puedes adquirir una rama de actualización para compilar:

git checkout branch_name  # r1.9, r1.10, etc.

Compila con el código fuente

Compila de forma cruzada el código fuente de TensorFlow para crear un paquete pip de Python con instrucciones de NEON de ARMv7, que funcionan en dispositivos Raspberry Pi 2, 3 y 4. La secuencia de comandos de compilación inicia un contenedor de Docker para la compilación. También puedes compilar con ARM binario de 64 bits (aarch64) si proporcionas el parámetro "AARCH64" en la secuencia de comandos "build_raspberry_pi.sh". Elige entre Python 3.8, Python 3.7, Python 3.5 y Python 2.7 para el paquete de destino:

Python 3.5

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON3 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Python 3.7

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON37 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Python 3.8 (64 bits)

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON38 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh AARCH64

Python 2.7

tensorflow/tools/ci_build/ci_build.sh PI \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Para compilar un paquete compatible con todos los dispositivos Raspberry Pi, incluidos los de Pi 1 y Zero, pasa el argumento PI_ONE, por ejemplo:

tensorflow/tools/ci_build/ci_build.sh PI \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh PI_ONE

Cuando finalice la compilación (aproximadamente 30 minutos), se creará un archivo de paquete .whl en el directorio de artefactos de salida del árbol de fuentes del host. Copia el archivo wheel (.whl) en Raspberry Pi y, luego, instálalo con pip:

pip install tensorflow-version-cp35-none-linux_armv7l.whl