Сложности настройки Odroid C2 с Tensorflow 0.8.0
Я пытаюсь установить Tensorflow 0.8.0 на Odroid C2. C2 использует 64-битный процессор ARM и запускает Python 2.7 и 3.5 в Ubuntu 16.04, поэтому я надеялся, что все будет просто, поскольку я считаю, что они поддерживаются. Судя по моему крайне плохому пониманию, существует большое замешательство с различным программным обеспечением, не верящим, что плата является 64-битной.
$ uname -i
aarch64
$ cat /proc/cpuinfo
Processor : AArch64 Processor rev 4 (aarch64)
Следуйте инструкциям по установке на веб-сайте tenorflow по адресу https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html
После раунда обновления apt-get обновите и установите зависимости, а затем загрузите 64-разрядную версию Python 2.7 для Linux Anaconda:
$ bash Anaconda2-4.0.0-Linux-x86_64.sh
WARNING:
Your operating system appears not to be 64-bit, but you are trying to
install a 64-bit version of Anaconda2.
Are sure you want to continue the installation? [yes|no]
При продолжении установки происходит сбой
installing: conda-env-2.4.5-py27_0 ...
Anaconda2-4.0.0-Linux-x86_64.sh: line 461: /home/odroid/anaconda2/pkgs/python-2.7.11-0/bin/python: cannot execute binary file: Exec format error
ERROR:
cannot execute native linux-64 binary, output from 'uname -a' is:
Linux top-master 3.14.29-56 #1 SMP PREEMPT Wed Apr 20 12:15:54 BRT 2016 aarch64 aarch64 aarch64 GNU/Linux
Я пошел дальше, попробовал установку на основе pip.
$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl
tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl is not a supported wheel on this platform.
(Та же проблема возникает с pip для Python 2.7)
Я видел некоторые похожие проблемы, когда, несмотря на "не поддерживаемое колесо", некоторые хитрости переименования файлов решают проблемы. После переименования я могу установить тензор потока:
$ sudo pip3 install tensorflow-0.8.0-cp35-none-any.whl
Processing ./tensorflow-0.8.0-cp35-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): protobuf==3.0.0b2 in / usr/local/lib/python3.5/dist-packages (from tensorflow==0.8.0)
Requirement already satisfied (use --upgrade to upgrade): six>=1.10.0 in /usr/li b/python3/dist-packages (from tensorflow==0.8.0)
Requirement already satisfied (use --upgrade to upgrade): wheel>=0.26 in /usr/li b/python3/dist-packages (from tensorflow==0.8.0)
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.8.2 in /usr/l ib/python3/dist-packages (from tensorflow==0.8.0)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib /python3/dist-packages (from protobuf==3.0.0b2->tensorflow==0.8.0)
Installing collected packages: tensorflow
Successfully installed tensorflow-0.8.0
Однако после:
$ python3
Python 3.5.1+ (default, Mar 30 2016, 22:46:26)
[GCC 5.3.1 20160330] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
Я получил:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py", line 23, in <module>
from tensorflow.python import *
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/__init__.py", line 45, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
_pywrap_tensorflow = swig_import_helper()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
File "/usr/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: /usr/local/lib/python3.5/dist-packages/tensorflow/python/_pywrap_tensorflow.so: cannot open shared object file: No such file or directory
Важно отметить, что этот файл очень существует:
$ ls /usr/local/lib/python3.5/dist-packages/tensorflow/python
client __init__.py lib platform pywrap_tensorflow.py summary user_ops
framework kernel_tests ops __pycache__ _pywrap_tensorflow.so training util
Как и раньше, повторение тех же шагов с Python 2.7 вызывает те же проблемы (с немного разными папками). Я не слишком уверен, как подойти к этому дальше - я представляю, что попытка построить свой собственный тензорный поток - это следующий шаг, но если этого можно избежать, это будет превосходно.
1 ответ
Извини, что у тебя проблемы, Зак! У меня нет опыта работы с odroid, но я обнаружил, что компиляция непосредственно на устройстве была лучшим подходом для таких платформ, как Raspberry Pi. У нас есть по крайней мере один отчет о том же подходе, работающем и для одроида: https://github.com/tensorflow/tensorflow/issues/254
Это помогает?