Tensorflow

De Caninos Loucos
Ir para: navegação, pesquisa

O TensorFlow é uma plataforma de código aberto de ponta a ponta para Machine Learning (ML). Ele tem um ecossistema abrangente e flexível de ferramentas, bibliotecas e recursos da comunidade que permite que desenvolvedores criem e implantem facilmente aplicativos com tecnologia de ML.

Instalando Tensorflow na Labrador

  1. Baixe o arquivo wheel a partir deste link: TENSORFLOW
  2. pip install -U --user --upgrade <diretório onde o arquivo foi baixado>/tensorflow-2.8.0-cp39-cp39-linux_aarch64.whl (EXEMPLO, pode ser versão mais recente)

Compilando Tensorflow

  1. Crie um espaço de swap com pelo menos 8 gigabytes. Use um SDCARD com pelo menos 32GBytes, recomendado 64GBytes
    1. sudo fallocate -l 8G /swap
    2. sudo mkswap /swap
    3. sudo swapon /swap (ou edite /etc/fstab para fazer o swap permanente, veja documentação linux para edição de /etc/fstab)
  2. Baixe o bazelisk: git clone https://github.com/bazelbuild/bazelisk.git
  3. Instale o bazelisk (de acordo com as instruções do README.md no github)
  4. Baixe o tensorflow: git clone https://github.com/tensorflow/tensorflow.git
  5. cd <diretório>/tensorflow
  6. Liste as versões disponíveis: git tag -l
  7. Selecione a versão desejada (no caso 2.8.0): git checkout tags/v2.8.0
  8. Configure para compilação: ./configure
    1. É possível que o configure não encontre alguns libraries, que precisarão ser instalados manualmente
    2. No caso do Labrador, desabilitar todas as otimizações GPU e as pertinentes a processadores Intel
  9. Construa o tensorflow: bazel --host_jvm_args='-Xms512m' --host_jvm_args='-Xmx1024m' build --config=v2 --local_cpu_resources=1 //tensorflow/tools/pip_package:build_pip_package
  10. Gere o wheel: ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
  11. O arquivo wheel estará em /tmp/tensorflow_pkg/<nome do arquivo>.whl

A compilação vai durar aproximadamente 120 horas.

Possivelmente a compilação vai travar algumas vezes. Mas é preciso ter muita calma: como os recursos do dispositivo vão ser esgotados, é preciso tentar destravar o terminal e esperar vários minutos para verificar se está efetivamente travado. Neste caso, basta desligar o dispositivo, religar o mesmo, ir para o diretório do tensorflow e repetir o comando descrito no ítem 9 ( bazel --host_jvm ... )