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