TensorFlow en Linux de 32 bits?


¿Existe una versión de TensorFlow para Linux de 32 bits? Solo veo la rueda de 64 bits disponible, y no encontré nada al respecto en el sitio.

 24
Author: Jonathon Byrd, 2015-11-10

3 answers

Solo hemos probado la distribución TensorFlow en Linux de 64 bits y Mac OS X, y distribuimos paquetes binarios solo para esas plataformas. Intente seguir las instrucciones de instalación de la fuente para crear una versión para su plataforma.

EDITAR: Un usuario ha publicado instrucciones para ejecutar TensorFlow en un procesador ARM de 32 bits, lo cual es prometedor para otras arquitecturas de 32 bits. Estas instrucciones pueden tener punteros útiles para conseguir TensorFlow y Bazel a trabaja en un entorno de 32 bits.

 21
Author: mrry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-31 06:39:58

He construido una versión solo para CPU de TensorFlow en Ubuntu de 32 bits (16.04.1 Xubuntu). Fue mucho más suave de lo previsto, para una biblioteca tan compleja que no admite arquitecturas de 32 bits oficialmente.

Se puede hacer siguiendo un subconjunto de la intersección de estas dos guías:

Si no lo he olvidado cualquier cosa, aquí están los pasos que he tomado:

  1. Instalar Oracle Java 8 JDK:

    $ sudo apt-get remove icedtea-8-plugin  #This is just in case
    $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get update
    $ sudo apt-get install oracle-java8-installer
    

(Esto es todo lo que necesita en una instalación prístina de Xubuntu, pero google las palabras clave anteriores de lo contrario, para leer sobre la selección de un JRE predeterminado y javac.)

  1. Dependencias:

    sudo apt-get update
    sudo apt-get install git zip unzip swig python-numpy python-dev python-pip python-wheel
    pip install --upgrade pip
    
  2. Siguiendo las instrucciones que vienen con Bazel , descargue un código postal Bazel source zip (I got bazel-0.4.3-dist.zip), haga un directorio como ~/tf/bazel/ y descomprímalo alli.

  3. Estaba recibiendo un OutOfMemoryError durante la siguiente compilación, pero esta corrección se encargó de ello (es decir, agregando el -J-Xmx512m para la compilación de bootstrap).

  4. Llama bash ./compile.sh, y espera por un largo tiempo (durante la noche para mí, pero ver las observaciones al final).

  5. $ git clone -b r0.12 https://github.com/tensorflow/tensorflow

  6. ¡Este parece el único cambio en el código fuente que era necesario!

    $ cd tensorflow
    $ grep -Rl "lib64"| xargs sed -i 's/lib64/lib/g'
    
  7. Entonces $ ./configure y decir no para todo. (Aceptar valores predeterminados cuando corresponda.)

  8. Lo siguiente tomó varias horas con mi configuración:

    $ bazel build -c opt --jobs 1 --local_resources 1024,0.5,1.0 --verbose_failures //tensorflow/tools/pip_package:build_pip_package
    $ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    $ pip install --user /tmp/tensorflow_pkg/ten<Press TAB here>
    

Para ver si está instalado, vea si funciona en el tutorial para principiantes TensorFlow. Utilizo jupyter qtconsole (es decir, el nuevo nombre de IPython). Ejecute el código en el mnist_softmax.py. Debe tomar poco tiempo, incluso en máquinas muy limitadas.

Por alguna razón, la guía de TensorFlow para construir desde la fuente no sugiere ejecutar la unidad pruebas:

$ bazel test //tensorflow/...

(Sí, escriba las elipses.)

Aunque no pude ejecutarlos, pasó 19 horas tratando de vincular libtensorflow_cc.so, y luego algo mató al enlazador. Esto fue con medio núcleo y un límite de memoria de 1536 MB. Tal vez alguien más, con una máquina más grande, pueda informar sobre cómo van las pruebas unitarias.

¿Por qué no necesitamos hacer las otras cosas mencionadas en esos dos tutoriales? En primer lugar, la mayor parte de ese trabajo se trata de cuidar la interfaz de GPU. En segundo lugar, tanto Bazel y TensorFlow se ha vuelto más autónomo desde que se escribió el primero de esos tutoriales.

Tenga en cuenta que los ajustes anteriores proporcionados a Bazel para la compilación son muy conservadores (1024 MB de RAM, medio núcleo, un trabajo a la vez), porque estoy ejecutando esto a través de VirtualBox utilizando un solo núcleo de una netbook de 2 200 del tipo que Intel hace para niños desfavorecidos en Venezuela, Pakistán y Nigeria. (Por cierto, si lo hace, asegúrese de que el disco duro virtual sea de 20 GB como mínimo - tratar de construir las pruebas unitarias anteriores tomó alrededor de 5 GB de espacio. La construcción de la rueda tomó casi 20 horas y la modesta CNN profunda de el segundo tutorial, que se cita para tomar hasta media hora para ejecutarse en CPUS de escritorio modernos, toma alrededor de 80 horas bajo esta configuración. Uno podría preguntarse por qué no obtengo un escritorio, pero la verdad es que la capacitación real con TensorFlow solo tiene sentido en una GPU de gama alta (o un montón de ellas), y cuando podemos contratar una instancia de AWS spot con dicha GPU por unos 10 centavos la hora sin compromiso y sobre una base ad-hoc viable, no tiene mucho sentido estar entrenando en otro lugar. La velocidad del 480000% es realmente notable. Por otro lado, la conveniencia de tener una instalación local vale la pena pasar por un proceso como el anterior.

 6
Author: Evgeni Sergeev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:23

Parece que Google aún no admite tensorflow en máquinas de 32 bits.

En una máquina de 32 bits que ejecuta Centos 6.5, se recibe el siguiente error después del comando "importar tensorflow como tf": ImportError: tensorflow / python / _pywrap_tensorflow. so: wrong ELF class: ELFCLASS64

Hasta que Google distribuya una versión de 32 bits de tensorflow, también recomiendo construir tensorflow desde el código fuente como se especifica aquí.

 1
Author: dlk5730,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-31 03:51:28