Январь 2019: обновление до TensorFlow r1.13, CPU или nVidia GPU, CUDA 10, cuDNN 7.4.

Пакеты pip TensorFlow являются общими двоичными файлами и могут не использовать ваш процессор в полной мере. Это пошаговое руководство по настройке настраиваемой оптимизированной установки TensorFlow (CPU или nVidia GPU с CUDA 10) в Ubuntu 18. Мы постараемся упростить задачу, а также вы сможете обновить TensorFlow и CUDA до более новых версий. с минимальными усилиями.

Прежде всего, давайте откроем терминал и обновим вашу ОС:

sudo apt update
sudo apt dist-upgrade

После этого вашей системе может потребоваться перезагрузка. Если вы не уверены, я рекомендую вам это сделать. Затем давайте установим некоторые необходимые пакеты Ubuntu:

sudo apt install git openjdk-8-jdk curl

Теперь, в зависимости от того, хотите ли вы установить тензорный поток python3 или python2 (вам может понадобиться стенд, я рекомендую Python 3.x):

Для Python3:

sudo apt install python3-dev python3-pip python3-numpy

Для Python2:

sudo apt install python-dev python-pip python-numpy 

TensorFlow использует систему сборки Google’s Bazel. Мы вручную установим Bazel 0.19.2 для TensorFlow r1.13, потому что TensorFlow чувствителен к версиям Bazel:

sudo apt install pkg-config zip g++ zlib1g-dev unzip
wget https://github.com/bazelbuild/bazel/releases/download/0.19.2/bazel-0.19.2-installer-linux-x86_64.sh
chmod +x bazel-0.19.2-installer-linux-x86_64.sh
sudo ./bazel-0.19.2-installer-linux-x86_64.sh

Bazel требует много ресурсов при сборке TensorFlow, мы увеличим ваш файл подкачки до 16 ГБ, чтобы избежать проблем:

sudo swapoff /swapfile
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Теперь давайте загрузим исходный код TensorFlow с GitHub, git создаст каталог с именем tensorflow. Запустить:

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r1.13

В зависимости от того, нужна ли вам поддержка графического процессора или нет, следуйте одному из следующих двух разделов:

Вариант 1: CPU TensorFlow:

Выполните следующую команду:

./configure

Вас спросят о местонахождении питона. Ответьте / usr / bin / python3 или / usr / bin / python2 в зависимости от того, что вы хотите.

Поскольку поддержка графического процессора не требуется, вы можете просто нажать Enter, чтобы установить значения по умолчанию для остальных параметров. После этого вы готовы создать пакет pip:

bazel build --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package

Теперь перейдите в раздел Последние штрихи.

Вариант 2: GPU TensorFlow (nVidia):

При запуске ./configure обратите внимание, пока он не запросит поддержку CUDA, введите y, вы можете нажать Enter (по умолчанию) для остальной части материала .

Далее мы установим среды выполнения и библиотеки CUDA и CuDNN, у nVidia есть репозиторий, ожидающий загрузки всех необходимых пакетов:

https://developer.nvidia.com/cuda-downloads

Загрузите пакет deb (network), перейдите к расположению файла и установите пакет cuda:

sudo dpkg -i cuda-repo*
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

Это может занять некоторое время, поскольку его размер составляет около 4 ГБ. Скачиваем cuDNN сейчас:

Https://developer.nvidia.com/cuDNN

Вам нужно будет войти в систему или создать учетную запись nVidia для этого шага, не волнуйтесь, это бесплатно. Из Загрузите cuDNN v7.4.2 (14 декабря 2018 г.) для CUDA 10.0 вам потребуется:

Библиотека времени выполнения cuDNN для Ubuntu18.04 (Deb)

а также

Библиотека разработчика cuDNN для Ubuntu18.04 (Deb)

Загрузите оба пакета. Вы можете найти более новые версии, ничего страшного.

Дождитесь завершения процесса установки cuda, затем установите cuDNN:

sudo dpkg -i libcudnn7_7*
sudo dpkg -i libcudnn7-*

Пора перезагрузить компьютер… Если у вас был ранее установлен драйвер nVidia, возможно, вам потребуется перезагрузить пару раз.

Олрай! Теперь у вас есть драйверы, библиотеки и заголовки. Посмотрите, что происходит с драйвером nVidia:

nvidia-smi

Теперь вернитесь в каталог tensorflow и запустите:

./configure

Вас спросят о местонахождении питона. Ответьте / usr / bin / python3 или / usr / bin / python2 в зависимости от того, что вы хотите.

Введите y, когда вас спросят о поддержке CUDA.

Вам нужно будет указать желаемый уровень вычислений CUDA. Значение по умолчанию (6.1) предназначено для аппаратного обеспечения Pascal. Ознакомьтесь с этой таблицей для справки:

Https://developer.nvidia.com/cuda-gpus

Вы можете безопасно использовать значения по умолчанию для остальных параметров конфигурации (нажмите Enter).

Почти готово… Пора запускать базел:

bazel build --config=opt --config=cuda --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package

Последние штрихи

Для завершения сборки Bazel может потребоваться время (часы). Закройте все, что можно на своем компьютере, чтобы освободить оперативную память, и не теряйте рассудок, если на пару минут он будет зависать. Удачи!

Если живы, беги:

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Поздравляю! Ваш пакет pip готов! Идите и установите его:

Для Python2:

pip2 install --upgrade --force-reinstall /tmp/tensorflow_pkg/tensorflow*.whl

Для Python3:

pip3 install --upgrade --force-reinstall /tmp/tensorflow_pkg/tensorflow*.whl

Теперь вы можете выйти из каталога tensorflow и протестировать новую установку:

Для Python2:

cd ..
python2 -c 'import tensorflow as tf; print(tf.__version__)'

Для Python3:

cd ..
python3 -c 'import tensorflow as tf; print(tf.__version__)'

Отлично! Я очень надеюсь, что у вас все получилось. Спасибо за внимание и наслаждайтесь.

Приложение: Обновления

CUDA и cuDNN обновятся с помощью apt. Вы можете повторить шаги из ./configure и далее, чтобы обновить установку TensorFlow после обновления репозитория git:

cd tensorflow
git pull
git checkout r1.14 # example
./configure
# etc.