Guia do iniciante para configurar um ambiente de aprendizado TensorFlow Profundo no Ubuntu 16.04.2 – Atualizado!

Este guia explica como instalar todas as ferramentas necessárias para começar a usar
TensorFlow GPU versão 1.2 em uma nova instalação do Ubuntu 16.04.2. Se você é novo no Linux ou no Deep-Learning ou apenas procura um guia simples para obter o TensorFlow funcionando, este é o guia para você.

Por que precisamos instalar o TensorFlow a partir da fonte? Por que não podemos fazer pip3 install --upgrade tensorflow-gpu ?

No TensorFlow Performance Guide , recomenda-se a Build and install from source. Citando o guia, “Construir a partir de fontes com otimizações de compilação para o hardware de destino e garantir que a mais recente plataforma CUDA e as bibliotecas cuDNN sejam instaladas resultam nas instalações com o melhor desempenho.” Eu não mediei os ganhos de desempenho, eu apenas confio no site TensorFlow .

As principais ferramentas principais estão instaladas neste guia:

 NVIDIA Graphics Drivers v375.66 
 NVIDIA CUDA Toolkit v8.0 
 NVIDIA cuDNN v5.1 
 Miniconda de 64 bits 
 Python3 v3.5.3 
 Tensorflow v1.2

Isenção de responsabilidade: suponho que você tenha um sistema com uma GPU NVIDIA habilitada para CUDA instalada. Também assumindo que você acabou de concluir a instalação do SO. Testei tudo sozinho, mas os resultados podem variar em seu sistema. Não sou responsável por quaisquer consequências imprevistas que possa enfrentar, seguindo as etapas abaixo. Siga sob seu próprio risco. Deixe um comentário se algo não funcionar, vou tentar ajudar.

1. Instale as atualizações do sistema operacional

Vamos começar por instalar todas as atualizações do sistema operacional. Abra uma janela de terminal digitando Ctrl + Alt + T.

 $ sudo apt update 
 $ sudo apt upgrade 
 $ sudo reiniciar

2. Instale drivers de gráficos NVIDIA

2.1 Adicione o repositório de drivers de gráficos

 $ sudo apt-add-repository ppa: graphics-drivers / ppa 
 $ sudo apt update

2.2 Atualize a versão do driver gráfico

Abra Configurações do sistema e clique em Software e atualizações .

Em Configurações do sistema, selecione Software e atualizações

Navegue até a guia Drivers adicionais. Em NVIDIA Corporation, selecione o botão de opção 375.66. Clique em Aplicar alterações.

Cuidado: não selecione 381.22 ou outra versão do driver. Não é compatível com o kit de ferramentas CUDA que vamos instalar.

Selecione a versão 375.66 sob NVIDIA Corporation

Reinicie o sistema assim que a instalação estiver concluída.

2.3 Corrigir alguns erros!

Depois de instalar o driver de gráficos, quando tentei instalar algum outro software como o screenfetch, recebi essa mensagem de erro:

 /sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 não é um link simbólico 
 /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 não é um link simbólico

Execute as seguintes linhas para evitar o erro mostrado acima.

 $ cd / usr / lib / nvidia-375 
 $ sudo mv libEGL.so.1 libEGL.so.1.org 
 $ sudo ln -s libEGL.so.375.66 libEGL.so.1 
 $ cd / usr / lib32 / nvidia-375 
 $ sudo mv libEGL.so.1 libEGL.so.1.org 
 $ sudo ln -s libEGL.so.375.66 libEGL.so.1

3. Instale o kit de ferramentas NVIDIA CUDA e o cuDNN

Vamos ao site NVIDIA Developer . Há muitas coisas interessantes aqui. Você pode querer olhar ao redor e ver o que é novo.

3.1 Baixe as ferramentas

por favor, vá para a página CUDA Toolkit .

Depois de clicar em baixar na página CUDA Toolkit, você será solicitado a fazer várias escolhas em relação ao seu sistema operacional = Linux , Architecture = x86_64 , Distribuição = Ubuntu , Versão = 16.04 e Tipo de Instalador = Deb (local) .

CUDA Toolkit pode ser baixado de https://developer.nvidia.com/cuda-downloads

Por favor, vá para a página cuDNN . Aqui você precisa de um login do desenvolvedor para continuar. Se você não possui um, é grátis participar.

selecione cuDNN v5.1 (20 de janeiro de 2017), para CUDA 8.0 e cuDNN v5.1 Library for Linux

Depois de iniciar sessão, selecione cuDNN v5.1 (20 de janeiro de 2017), para CUDA 8.0 e cuDNN v5.1 Library para Linux como mostrado acima.

3.2 Instalar CUDA Toolkit

Faça o download no site do desenvolvedor, conforme mostrado acima ou clicando neste link direto para o kit de ferramentas do NVIDIA Developer Site

vá para o diretório onde o CUDA Toolkit é baixado.

 $ cd ~ / Downloads

Instale o kit de ferramentas

 $ sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb 
 $ sudo apt update 
 $ sudo apt install cuda

3.3 Adicionar o CUDA Toolkit a $ PATH

Abra ~/.bashrc no seu editor favorito.

 $ gedit ~ / .bashrc

Adicione essas três declarações de exportação no final de ~/.bashrc

 exportar PATH = / usr / local / cuda / bin $ {PATH: +: $ {PATH}} 
 exportar LD_LIBRARY_PATH = / usr / local / cuda / lib64: / usr / local / cuda / extras / CUPTI / lib64 $ {LD_LIBRARY_PATH: +: $ {LD_LIBRARY_PATH}} 
 exportar CUDA_HOME = / usr / local / cuda

Abaixo está o meu ~/.bashrc

Salve o arquivo e feche o editor.

Recarregue o arquivo ~/.bashrc .

 $ source ~ / .bashrc

3.4 Instalar cuDNN

Faça o download da biblioteca cuDNN v5.1 como mostrado acima na seção 3.1

vá para o diretório onde o cuDNN é baixado.

 $ cd ~ / Downloads

Extraia o conteúdo

 $ tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz

Copie arquivos da pasta cuda para /usr/local/cuda

 $ sudo cp -P cuda / include / cudnn.h / usr / local / cuda / include 
 $ sudo cp -P cuda / lib64 / libcudnn * / usr / local / cuda / lib64

Alterar permissões para os arquivos copiados

 $ sudo chmod a + r /usr/local/cuda/include/cudnn.h / usr / local / cuda / lib64 / libcudnn *

3.5 Teste a instalação do CUDA Toolkit e cuDNN

Vamos verificar alguns números de versão antes de continuar.

 $ nvcc - versão

Informação da versão nvcc

 $ nvidia-smi

saída para o comando nvidia-smi. Use isso para verificar a versão do driver gráfico,% carga, temperatura e uso de memória da sua placa gráfica NVIDIA.

Vamos fazer um diretório de software na pasta inicial. Nós também baixaremos TensorFlow neste diretório mais tarde.

 $ mkdir ~ / Software 
 $ cd ~ / Software

Copie um conjunto de scripts de teste para o diretório local

 $ cuda-install-samples-8.0.sh ./ 
 $ cd NVIDIA_CUDA-8.0_Samples /

Construa-os

 $ make

Execute-os para garantir que eles funcionem. Minha saída está incluída abaixo.

 $ cd bin / x86_64 / linux / release 
 $ ./deviceQuery

saída de ./deviceQuery

 $ ./bandwidthTest

saída de ./bandwidthTest

4. Construa TensorFlow GPU 1.2 a partir de Fontes

4.1 Instalar Dependências

 $ sudo apt install openjdk-8-jdk 
 $ sudo apt install git 
 $ sudo apt install build-essential curl libcurl3-dev 
 $ sudo apt install python3-numpy python3-dev python3-pip python3-wheel

4.2 Instalar o Bazel

Adicionar URI de distribuição Bazel como uma fonte de pacote

 $ echo "deb [arch = amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list 
 $ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

Instale e atualize Bazel

 $ sudo apt update 
 $ sudo apt install bazel 
 $ sudo apt upgrade bazel

4.3 Build TensorFlow de Fontes

 $ cd ~ / Software

Repositório Clone TensorFlow Git

 $ git clone https://github.com/tensorflow/tensorflow 
 fluxo de tensão $ cd

Volte para a versão 1.2

 $ git checkout r1.2

Configure a instalação.

 $ ./configure

Use as respostas exatas como mostrado abaixo em negrito .

 Por favor, especifique a localização do python. [O padrão é / usr / bin / python]: /usr/bin/python3.5
 Encontrou possíveis caminhos da biblioteca Python: 
 / usr / lib / python3 / dist-packages 
 /usr/local/lib/python3.5/dist-packages 
 Digite o caminho desejado da biblioteca Python para usar. O padrão é [/ usr / lib / python3 / dist-packages] 
 /usr/local/lib/python3.5/dist-packages
 Deseja criar o TensorFlow com o suporte MKL? [y / N] n 
 Nenhum suporte MKL será habilitado para TensorFlow
 Por favor, especifique bandeiras de otimização para usar durante a compilação quando a opção Bazel "--config = opt" for especificada [Padrão é -march = nativo]: nenhuma entrada basta pressionar enter
 Você deseja usar jemalloc como a implementação malloc? [Y / n] y 
 jemalloc habilitado
 Deseja criar o TensorFlow com o suporte do Google Cloud Platform? [y / N] n 
 Nenhum suporte da Google Cloud Platform será habilitado para o TensorFlow
 Você deseja criar o TensorFlow com o suporte ao sistema de arquivos Hadoop? [y / N] n 
 Nenhum suporte ao sistema de arquivos Hadoop será habilitado para TensorFlow
 Você deseja criar o TensorFlow com o compilador Just-in-time XLA (experimental)? [y / N] n 
 Nenhum suporte XLA JIT será habilitado para TensorFlow
 Você deseja criar o TensorFlow com o suporte VERBS? [y / N] n 
 Nenhum suporte VERBS será habilitado para TensorFlow
 Deseja criar TensorFlow com o suporte OpenCL? [y / N] n 
 Nenhum suporte OpenCL será habilitado para TensorFlow
 Deseja criar o TensorFlow com suporte ao CUDA? [y / N] y 
 O suporte CUDA será habilitado para o TensorFlow
 Você quer usar clang como compilador CUDA? [y / N] n 
 nvcc será usado como compilador CUDA
 Por favor, especifique a versão CUDA SDK que você deseja usar, por exemplo, 7.0. [Deixe vazio para usar o padrão do sistema]: 8.0
 Por favor, especifique o local onde o kit de ferramentas CUDA 8.0 está instalado. Consulte README.md para obter mais detalhes. [Padrão é / usr / local / cuda]: nenhuma entrada apenas pressione enter
 Por favor, especifique qual gcc deve ser usado pelo nvcc como compilador do host. [O padrão é / usr / bin / gcc]: nenhuma entrada apenas pressione enter
 Por favor, especifique a versão cuDNN que deseja usar. [Deixe vazio para usar o sistema padrão]: 5
 Por favor, especifique o local onde a biblioteca cuDNN 5 está instalada. Consulte README.md para obter mais detalhes. [Padrão é / usr / local / cuda]: nenhuma entrada apenas pressione enter
 Por favor, especifique uma lista de capacidades de computação Cuda separadas por vírgulas com as quais você deseja construir. 
 Você pode encontrar a capacidade de computação do seu dispositivo em: https://developer.nvidia.com/cuda-gpus . 
 Observe que cada capacidade de cálculo adicional aumenta significativamente o tempo de compilação e o tamanho binário. 
 [O padrão é: "3.5,5.2"]: 3.0 
 Extraindo a instalação Bazel ... 
 ..... 
 INFO: Iniciar limpo (isso pode demorar um pouco). Considere usar - sincronizar se a limpeza demorar mais de vários minutos. 
 Configuração concluída

Construir

 $ bazel build --config = opt --config = cuda // tensorflow / tools / pip_package: build_pip_package 
 $ bazel-bin / tensorflow / tools / pip_package / build_pip_package ~ / Software / tensorflow_pkg

O instalador TensorFlow GPU 1.2 será salvo em ~/Software/tensorflow_pkg

5. Instale Miniconda

5.1 Download Miniconda

Baixe Miniconda do site conda.io . Selecione o Python 3.6, instalador de 64 bits para o linux.

5.2 Instalar Miniconda

Use o comando abaixo para instalar o Miniconda.

 $ bash Miniconda3-latest-Linux-x86_64.sh

selecione Sim quando solicitado a adicionar miniconda ao caminho modificando ~/.bashrc

5.3 Criar um novo ambiente conda

Abra uma nova janela de terminal digitando Ctrl + Alt + T. Crie um novo ambiente conda chamado tf1.2 com python 3.5 e numpy.

 $ conda create -n tf1.2 python = 3.5 numpy

6. Instale TensorFlow GPU v1.2

6.1 Instalar TensorFlow

Ative o ambiente conda recentemente criado.

 $ source activate tf1.2

Instale o TensorFlow usando o instalador que criamos a partir de fontes.

 (tf1.2) $ pip install ~ / Software / tensorflow_pkg / tensorflow-1.2.0-cp35-cp35m-linux_x86_64.whl

6.2 Teste a instalação TensorFlow

Lançar python

 (tf1.2) $ python

Use o seguinte código de python para testar se o TensorFlow está instalado corretamente. Eu incluí minha saída abaixo.

>>> import tensorflow as tf 
 >>> hello = tf.constant('Hello, TensorFlow!') 
 >>> sess = tf.Session() 
 >>> print(sess.run(hello))

Se você ver oi, TensorFlow! no final, tudo é bom.

Atualizações!

A instalação da Anaconda foi substituída pela Miniconda .

Por que substituir Anaconda por Miniconda?

Anaconda inclui conda, mais de 150 pacotes de python e suas dependências. Como parte dessas dependências, a Anaconda instala o pacote glib que é incompatível com a nossa versão do Ubuntu causando o seguinte erro ao usar alguns aplicativos.

 GLib-GIO-Message: Usando o backend GSettings 'memória'. Suas configurações não serão salvas ou compartilhadas com outras aplicações. 
 [[! ]] GLib-GIO-Message: Usando o backend GSettings 'memória'. Suas configurações não serão salvas ou compartilhadas com outras aplicações.

Uma vez que a Anaconda será a nossa instalação padrão do Python, veremos esse erro mais frequentemente do que gostamos.

Miniconda é uma versão menor e básica da Anaconda que tem apenas conda e python. Então, isso evita causar o erro acima.

Referências:

NVIDIA CUDA Toolkit Guia de Instalação pela NVIDIA
TensorFlow Guia de Instalação do TensorFlow

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *