Criando o pacote pip do TensorFlow Hub usando Linux

Se você fizer alterações no pacote pip do TensorFlow Hub, provavelmente desejará recompilar o pacote a partir do código-fonte para testar as alterações.

Isso requer:

  • Python
  • TensorFlow
  • Git
  • Bazel

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

Configure um ambiente virtual

Ativar ambiente virtual

Instale o virtualenv caso ainda não esteja 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

Compile e instale o pacote

Script pip para criar o pacote 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 "de desenvolvedor" (experimental)

A única maneira oficialmente suportada é compilar o pacote com o Bazel. No entanto, se você não estiver familiarizado com o Bazel, é mais simples usar 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, de forma que as alterações feitas sejam refletidas quando você importar o pacote.

Configurar o repositório

Primeiro, configure o ambiente virtual 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 existem arquivos _pb2.py no diretório:

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

Execute o 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

Importar diretamente do repositório

Com os arquivos _pb2.py instalados, você pode testar suas modificações diretamente do 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 ambiente virtual Python comum, sem a necessidade de recompilar 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 ambiente virtual.

(tensorflow_hub_env)~/hub/$ deactivate
,

Se você fizer alterações no pacote pip do TensorFlow Hub, provavelmente desejará recompilar o pacote a partir do código-fonte para testar as alterações.

Isso requer:

  • Python
  • TensorFlow
  • Git
  • Bazel

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

Configure um ambiente virtual

Ativar ambiente virtual

Instale o virtualenv caso ainda não esteja 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

Compile e instale o pacote

Script pip para criar o pacote 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 "de desenvolvedor" (experimental)

A única maneira oficialmente suportada é compilar o pacote com o Bazel. No entanto, se você não estiver familiarizado com o Bazel, é mais simples usar 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, de forma que as alterações feitas sejam refletidas quando você importar o pacote.

Configurar o repositório

Primeiro, configure o ambiente virtual 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 existem arquivos _pb2.py no diretório:

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

Execute o 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

Importar diretamente do repositório

Com os arquivos _pb2.py instalados, você pode testar suas modificações diretamente do 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 ambiente virtual Python comum, sem a necessidade de recompilar 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 ambiente virtual.

(tensorflow_hub_env)~/hub/$ deactivate