Criando o pacote pip do TensorFlow Hub usando Linux

Se você fizer alterações no pacote pip do TensorFlow Hub, provavelmente desejará reconstruir o pacote pip a partir da origem para testar suas alterações.

Isto exige:

  • Pitão
  • TensorFlow
  • Git
  • Bazel

Alternativamente, se você instalar o compilador protobuf, poderá testar suas alterações sem usar bazel .

Configure um virtualenv

Ativar virtualenv

Instale o virtualenv se ainda não estiver instalado:

~$ sudo apt-get install python-virtualenv

Crie um ambiente virtual para a criação do pacote:

~$ virtualenv --system-site-packages tensorflow_hub_env

E ative-o:

~$ source ~/tensorflow_hub_env/bin/activate  # bash, sh, ksh, or zsh
~$ source ~/tensorflow_hub_env/bin/activate.csh  # csh or tcsh

Clone o repositório do TensorFlow Hub.

(tensorflow_hub_env)~/$ git clone https://github.com/tensorflow/hub
(tensorflow_hub_env)~/$ cd hub

Teste suas alterações

Execute os testes do TensorFlow Hub

(tensorflow_hub_env)~/hub/$ bazel test tensorflow_hub:all

Construa e instale o pacote

Criar script de empacotamento pip do TensorFlow Hub

Para criar um pacote pip para o TensorFlow Hub:

(tensorflow_hub_env)~/hub/$ bazel build tensorflow_hub/pip_package:build_pip_package

Crie o pacote pip do TensorFlow Hub

(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg

Instale e teste o pacote pip (opcional)

Execute os seguintes comandos para instalar o pacote pip.

(tensorflow_hub_env)~/hub/$ pip install /tmp/tensorflow_hub_pkg/*.whl

Teste de importação do TensorFlow Hub:

(tensorflow_hub_env)~/hub/$ cd ..  # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"

Instalação "Desenvolvedor" (experimental)

Construir o pacote com bazel é o único método oficialmente suportado. No entanto, se você não estiver familiarizado com o Bazel, é mais simples trabalhar com ferramentas de código aberto. Para isso você pode fazer uma "instalação de desenvolvedor" do pacote.

Este método de instalação permite que você instale o diretório de trabalho em seu ambiente python, para que as alterações contínuas sejam refletidas quando você importar o pacote.

Configure o repositório

Primeiro configure o virtualenv e o repositório, conforme descrito acima .

Instalar protoc

Como o TensorFlow Hub usa protobufs, você precisará do compilador protobuf para criar os arquivos python _pb2.py necessários a partir dos arquivos .proto .

Em um Mac:

(tensorflow_hub_env)~/hub/$ brew install protobuf

No Linux

(tensorflow_hub_env)~/hub/$ sudo apt install protobuf-compiler

Compile os arquivos .proto

Inicialmente não há arquivos _pb2.py no diretório:

(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py

Execute protoc para criá-los:

(tensorflow_hub_env)~/hub/$ protoc -I=tensorflow_hub --python_out=tensorflow_hub tensorflow_hub/*.proto
(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py
tensorflow_hub/image_module_info_pb2.py
tensorflow_hub/module_attachment_pb2.py
tensorflow_hub/module_def_pb2.py

Importe diretamente do repositório

Com os arquivos _pb2.py instalados, você pode testar suas modificações diretamente no diretório do TensorFlow Hub:

(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"

Instale no modo "desenvolvedor"

Ou para usar isso fora da raiz do repositório, você pode usar a instalação setup.py develop :

(tensorflow_hub_env)~/hub/$ python tensorflow_hub/pip_package/setup.py develop

Agora você pode usar suas alterações locais em um virtualenv python normal, sem a necessidade de reconstruir e instalar o pacote pip para cada nova alteração:

(tensorflow_hub_env)~/hub/$ cd ..  # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"

Desative o virtualenv

(tensorflow_hub_env)~/hub/$ deactivate