Cinco pasos para TensorFlow en Raspberry Pi

Si tiene alrededor de 10 horas para matar, puede usar [Edje Electronics’s] instrucciones para instalar TensorFlow en Raspberry Pi 3. En realidad, el tiempo que tendrás que esperar es de aproximadamente una hora. El resto del tiempo se dedica a construir cosas y no es necesario mirarlas. Puede ver un video sobre los pasos necesarios a continuación.

Necesita el Pi con al menos una tarjeta SD de 16 GB y una unidad USB con al menos 1 GB de espacio libre. Esto no solo contiene el programa, sino que le permite crear un archivo de intercambio, por lo que el Pi tendrá suficiente memoria virtual para crear todo lo necesario.

El paso de construcción no es solo crear TensorFlow, sino también Bazel, que es el sistema de construcción basado en Java de Google. Existen dependencias entre la versión de TensorFlow y la versión de Bazel, por lo que debe asegurarse de que las versiones coincidan como se explica en el video.

El video se basa en algunas instrucciones antiguas de GitHub, pero esas instrucciones no están actualizadas y los cambios necesarios se tratan en el video.

Teniendo en cuenta el tiempo que lleva compilar, nos preguntamos si la compilación cruzada podría ser una mejor opción. Si necesita modelos que funcionen con este diseño, siempre puede trabajar en su navegador.

  • Max Siegieda (@CampGareth) dice:

    Un consejo ventajoso, en las versiones recientes de ubuntu (16.04 arriba) puede habilitar zram (intercambio comprimido en RAM o 'RAM comprimida') con un solo comando, `apt-get install zram-config`. No sé si eso también funciona en Debian, pero ¿probablemente?

    La cuestión es que esto le da a sus computadoras con RAM limitada un poco más para jugar mientras compilan paquetes grandes. Sin embargo, no puede hacer milagros, tengo Ceph compilando en casa en una placa con 2 GB de RAM, pero requiere 6 GB. Ahí es cuando entran las unidades USB y los archivos de intercambio gigantes.

    • Cierto dice:

      Gracias por el conocimiento de esta existencia. También parece ser muy bueno que el intercambio de SSD ralentice la tasa de fallas.

      (ref: https://en.wikipedia.org/wiki/Zram)
      "El espacio de intercambio comprimido con zram / zswap también ofrece ventajas para algunos dispositivos de hardware, como dispositivos integrados y libros electrónicos. Estos dispositivos suelen utilizar almacenamiento basado en flash, que tiene una vida útil limitada debido a la mejora de escritura, y también lo utilizan para proporcionar intercambio el uso de space. swap como resultado del uso de zram reduce de manera efectiva la cantidad de desgaste de dicho almacenamiento basado en flash, lo que resulta en una extensión de su vida útil. Además, el uso de zram da como resultado una E / S significativamente reducida para los sistemas Linux que necesitan intercambio ".

    • Ø dice:

      Agrega carga adicional a la CPU, pero esto es preferible a fallar en la construcción debido a memoria insuficiente.

    • pelrun dice:

      Puse ARM Raspbian en una carpeta en mi computadora principal, configuré binfmt para iniciar ARM digitals bajo la imitación de usuario QEMU, luego cambié a instalar Raspbian como un jailbreak kroot. Compilar en ese entorno SCREAMS, sobre todo porque puedo aprovechar todos mis kernels y RAM. ¡Aunque se copia GCC! (Ayuda que todo en el lado central siga funcionando de forma nativa).

      • Jeffeb3 dice:

        Custompios hace esto para crear imágenes de pulpos. Es genial. También he experimentado el uso de una ventana acoplable para hacer esto. Tantas opciones.

    • Percy Q. Caja de zapatos Esq. dice:

      Sí, también en Debian. lo habilité anoche en un tramo de Debian en Pi 3 anoche corriendo tan nublado.

  • me dice:

    Me encantan estos paquetes de software que unen capas y capas de "cosas". ¿De verdad, primero tienes que crear un sistema de construcción basado en Java? Lo que una vez pasó a "hacer". Oh, lo olvidé. Estamos hablando de Google. Buena tristeza. ¿Y cambiar a una memoria USB? Suspiro.

    • svofski dice:

      ¿Crees que has visto demasiadas capas? Prueba yocto.

  • Millas arquero dice:

    Hice esto y es bueno para un tutorial, pero no fue lo suficientemente rápido para ser útil. Lo intentaré de nuevo con una de las memorias USB del acelerador.

    • Jacobo dice:

      ¿Cómo controlaste el rendimiento? ¿Puedes compartir un poco de tu experiencia?
      Sin embargo, cuando vi esto, estaba bromeando. Creo que RPi no tiene suficiente potencia informática para hacer algo útil con TF. HW-acc es bastante necesario (pero los aceleradores solo apoyan una conclusión)

  • Borde dice:

    Para aquellos interesados, esto es parte de mi proyecto para crear un robot eléctrico Raspberry Pi de juego negro que pueda detectar las cartas que se manejan frente a él y tomar decisiones exitosas o decisivas, ¡todo mientras cuenta cartas e implementa estrategias de conteo de cartas!
    https://la-tecnologia.io/project/27639-rainman-20-blackjack-robot

  • Michel dice:

    ¿Qué pasa con el uso de corriente tensorial?
    Consulte https://medium.com/@haraldfernengel/compiling-tensorflow-lite-for-a-raspberry-pi-786b1b98e646 para obtener instrucciones más recientes

    • Infnorm dice:

      Desarrollador de TensorFlow aquí ... Estoy trabajando en un tiempo de ejecución de TensorFlow Lite, que será pequeño y fácil de instalar (alrededor de 400k). También será construido por Make. Tengo algunos ejemplos actuando aquí:
      https://youtu.be/ByJnpbDd-zc?t=28m35s

      También estamos trabajando para crear TensorFlow y hacerlo de noche para que las personas no tengan que hacerlo ellos mismos.

      • Borde dice:

        ¡Eso es increíble de escuchar! Gracias por tu notificación. Utilizo el detector de API de TensorFlow en Pi, y también tuve que compilar Protobuf desde cero porque no estaba disponible a través de apt-get o en otro lugar. ¿Tiene una opción para hacer una manera fácil de obtener Protobuf en el Pi?

        • infnorm dice:

          Sí, sabemos que ahora es difícil. También estaremos mucho más encapsulados en modelos simples (y también proporcionaremos un modelo cuantificado para una detección de objetos más rápida).

          • Borde dice:

            Estoy haciendo una secuela de este video sobre cómo configurar la API de detección de objetos TensorFlow en la Pi, pero según sus comentarios, estoy interesado en usar TensorFlow Lite en su lugar. Sin embargo, mirando el repositorio de GitHub, no estoy seguro de cómo comenzar a usar la detección de objetos (¿también conocido como multibox_detector?) En TF Lite. ¿Existe una buena manera de comunicarme al respecto si tiene tiempo para responder preguntas de hardware tonto?

      • xiyuanyuan dice:

        La aplicación del procesamiento con láser ultravioleta en la industria de PCB

      • Eric Flores (@erflores) dice:

        Hola Andy

        Cuando mencionas el whl para el flujo tensorial completo, ¿no son estos los paquetes de los que estás hablando?
        Python 2.7: http://ci.tensorflow.org/view/Nightly/job/nightly-pi/
        Python 3.4: http://ci.tensorflow.org/view/Nightly/job/nightly-pi-python3/

        La versión de Python 2 funcionó para mí, pero Python 3 no funcionó porque está compilado para Python 3.4, pero la versión de Python 3 con Raspbian es 3.5. ¿Existe una ETA para generar la versión 3.5? Tener esa versión disponible sería muy efectivo para la comunidad de Raspberry Pi.

        Gracias
        Eric

  • BillyGatesGator dice:

    ¿Un sistema de construcción de Java? pase lo que pase, simplemente "hazlo". Parece que todo el mundo necesita su propio hábito, para compilar hasta los proyectos más sencillos o triviales. 100 MB de mierda.

    X necesita un Crambulizer para compilar Brooble, que es utilizado por Drooble para producir un snozzler para esponjar un socksifier.

    Es por eso que las máquinas virtuales o los contenedores son INCREÍBLES. No estropeo mi sistema con MB o GB de mierda que solo puedo usar una vez, durante 10 minutos, y luego paso días desinstalando toda la mierda.

    • svofski dice:

      Los sistemas de construcción deben considerarse malware.

  • Paul Huff dice:

    Esto es genial y todo, pero ¿por qué este enfoque? Simplemente use un tensor de corriente en su propia máquina para crear modelos y luego inserte esos modelos en programas que se ejecutan en el Pi. Guarda ese tiempo para algo útil ...

    • Borde dice:

      No sé cómo operar un modelo entrenado por TensorFlow en la Pi sin tener TensorFlow instalado. ¿Puede usted (o cualquier otra persona) indicarme dónde podría aprender más sobre cómo usar los modelos de TensorFlow en aplicaciones independientes en la Pi?

  • Daniel Matthews dice:

    Google ya tiene una imagen de disco RPi para esto, no se requiere compilación.

    • Alan dice:

      ¡Dios mío! Me asustó una pregunta tonta:
      "¿No puedes simplemente descargar una versión precompilada, lista para ejecutarse?"

      Si tuviera que compilar MS Office / Libre Office, Photoshop / Gimp, Autocad, Blender, etc. desde el código fuente, dudo que alguna vez los use.

  • Anish dice:

    Mi texto está completo. Cuál es mi próximo texto ...

  • codroneci dice:

    Instalé tensorflow en Raspberry PI 3 siguiendo tus instrucciones y funcionó perfectamente. Después de eso, comencé a instalar algunas bibliotecas que necesitaba cargar un modelo de Keras entrenado en mi computadora (numpy, scipy, etc.) y noté el siguiente error al importar una corriente tensorial:

    Error de tiempo de ejecución: módulo compilado con la versión de API 0xc pero esta versión de numpy es 0xa
    Fallo de segmento

    He actualizado todas las bibliotecas necesarias y la importación de ninguna de ellas no genera un error en el script de Python 3. Además, el error no está relacionado con kera, ya que el flujo del tensor de importación declarativo provoca un error independientemente de lo que le sigue. ¿Debo desinstalar tensorflow y reiniciar?

Ricardo Vicente
Ricardo Vicente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *