TensorFlow sur Linux 32 bits?

Existe-t-il une version de TensorFlow pour Linux 32 bits? Je ne vois que la roue 64 bits disponible, et je n'ai rien trouvé à ce sujet sur le site.

24
demandé sur Jonathon Byrd 2015-11-10 19:14:05

3 réponses

Nous avons seulement testé la distribution TensorFlow sur Linux 64 bits et Mac OS X, et distribuons des paquets binaires pour ces plates-formes uniquement. Essayez de suivre les instructions d'installation source {[2] } pour créer une version pour votre plate-forme.

EDIT: un utilisateur a publié des instructions pour exécuter TensorFlow sur un processeur ARM 32 bits , ce qui est prometteur pour d'autres architectures 32 bits. Ces instructions peuvent avoir des pointeurs utiles pour obtenir TensorFlow et Bazel travailler dans un environnement 32 bits.

21
répondu mrry 2015-12-31 06:39:58

J'ai construit une version CPU uniquement de TensorFlow sur Ubuntu 32 bits (16.04.1 Xubuntu). Cela s'est passé beaucoup plus facilement que prévu, pour une bibliothèque aussi complexe qui ne supporte pas officiellement les architectures 32 bits.

, Il peut être fait en suivant un sous-ensemble de l'intersection de ces deux guides:

Si je n'ai pas oublié quoi que ce soit, voici les étapes que j'ai prises:

  1. Installer 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
    

(c'est tout ce dont vous avez besoin dans une installation Xubuntu vierge, mais google les mots-clés ci-dessus sinon, pour lire sur la sélection D'un JRE par défaut et javac.)

  1. Dépendances:

    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. En suivant les instructions fournies avec Bazel , téléchargez un zip Source Bazel (j'ai bazel-0.4.3-dist.zip), créez un répertoire comme ~/tf/bazel/ et décompressez-le y.

  3. Je recevais un OutOfMemoryError pendant la construction suivante, mais ce correctif s'en est occupé (c'est-à-dire en ajoutant le -J-Xmx512m pour la construction de bootstrap).

  4. Appelez bash ./compile.sh, et attendez longtemps (du jour au lendemain pour moi, Mais voyez les remarques à la fin).

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

  6. Cela semble être le seul changement au code source qui était nécessaire!

    $ cd tensorflow
    $ grep -Rl "lib64"| xargs sed -i 's/lib64/lib/g'
    
  7. Alors $ ./configure et dire non pour tout. (Accepter les valeurs par défaut le cas échéant.)

  8. Ce qui suit a pris quelques heures avec mon installation:

    $ 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>
    

Pour voir s'il est installé, voyez s'il fonctionne sur le tutoriel TensorFlow Beginners. J'utilise jupyter qtconsole (c'est-à-dire le nouveau nom D'IPython). Exécutez le code dans le mnist_softmax.py. Cela devrait prendre peu de temps, même sur des machines très limitées.

Pour une raison quelconque, le guide de TensorFlow pour construire à partir de la source ne suggère pas d'exécuter l'unité essais :

$ bazel test //tensorflow/...

(Oui, tapez les ellipses.)

Bien que je ne puisse pas les exécuter - il a passé 19 heures à essayer de lier libtensorflow_cc.so, puis quelque chose a tué l'éditeur de liens. C'était avec un demi-Noyau et une limite de mémoire de 1536 Mo. Peut-être que quelqu'un d'autre, avec une machine plus grande, peut rendre compte de la façon dont les tests unitaires vont.

Pourquoi n'avons-nous pas besoin de faire les autres choses mentionnées dans ces deux soluces? Tout d'abord, la plupart de ce travail consiste à prendre soin de L'interface GPU. Deuxièmement, les deux Bazel et TensorFlow sont devenus plus autonomes depuis la première de ces soluces a été écrit.

Notez que les paramètres ci-dessus fournis à Bazel pour la construction sont très conservateurs (1024 Mo de RAM, un demi-Noyau, un travail à la fois), parce que je l'exécute via VirtualBox en utilisant un seul noyau d'un netbook 200 $Du Type Intel fait pour les enfants défavorisés au Venezuela, au Pakistan et au Nigeria. (En passant, si vous faites cela, assurez-vous que le disque dur virtuel est de 20 Go au moins - essayer de construire les tests unitaires ci-dessus a pris environ 5 GO d'espace.) La construction de la roue a pris près de 20 heures et le modeste CNN profond de le deuxième tutoriel , qui est cité pour prendre jusqu'à une demi-heure pour fonctionner sur les processeurs de bureau modernes, prend environ 80 heures sous cette configuration. On pourrait se demander pourquoi je n'ai pas de bureau, mais la vérité est que la formation réelle avec TensorFlow n'a de sens que sur un GPU haut de gamme (ou un tas de ceux-ci), et quand nous pouvons embaucher une instance AWS spot avec un tel GPU pour environ 10 cents l'heure sans engagement et sur une base ad hoc réalisable, cela n'a pas beaucoup de sens de s'entraîner ailleurs. L'accélération de 480000% est vraiment perceptible. D'autre part, la commodité d'avoir une installation locale vaut bien passer par un processus comme ci-dessus.

6
répondu Evgeni Sergeev 2017-05-23 12:26:23

Il semble que Google ne supporte pas encore tensorflow sur les machines 32 bits.

Sur une machine 32 bits exécutant Centos 6.5, l'erreur suivante est reçue après la commande" import tensorflow as tf: ImportError: tensorflow / python / _pywrap_tensorflow. so: mauvaise classe ELF: ELFCLASS64

Jusqu'à ce que Google distribue une version 32 bits de tensorflow, je recommande également de construire tensorflow à partir de la source comme spécifié ici.

1
répondu dlk5730 2015-12-31 03:51:28