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