Se apporti modifiche al pacchetto pip di TensorFlow Hub, probabilmente vorrai ricostruire il pacchetto pip dall'origine per provare le modifiche.
Ciò richiede:
- Pitone
- TensorFlow
- Va bene
- Bazel
In alternativa, se installi il compilatore protobuf puoi provare le modifiche senza utilizzare bazel .
Configura un virtualenv
Attiva virtualenv
Installa virtualenv se non è già installato:
~$ sudo apt-get install python-virtualenv
Creare un ambiente virtuale per la creazione del pacchetto:
~$ virtualenv --system-site-packages tensorflow_hub_env
E attivalo:
~$ source ~/tensorflow_hub_env/bin/activate # bash, sh, ksh, or zsh
~$ source ~/tensorflow_hub_env/bin/activate.csh # csh or tcsh
Clona il repository TensorFlow Hub.
(tensorflow_hub_env)~/$ git clone https://github.com/tensorflow/hub
(tensorflow_hub_env)~/$ cd hub
Metti alla prova le tue modifiche
Esegui i test di TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel test tensorflow_hub:all
Compila e installa il pacchetto
Crea script di packaging pip di TensorFlow Hub
Per creare un pacchetto pip per TensorFlow Hub:
(tensorflow_hub_env)~/hub/$ bazel build tensorflow_hub/pip_package:build_pip_package
Crea il pacchetto pip di TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg
Installa e testa il pacchetto pip (facoltativo)
Esegui i seguenti comandi per installare il pacchetto pip.
(tensorflow_hub_env)~/hub/$ pip install /tmp/tensorflow_hub_pkg/*.whl
Prova l'importazione di TensorFlow Hub:
(tensorflow_hub_env)~/hub/$ cd .. # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Installazione "sviluppatore" (sperimentale)
La creazione del pacchetto con bazel è l'unico metodo ufficialmente supportato. Tuttavia, se non hai familiarità con Bazel, è più semplice lavorare con strumenti open source. Per questo puoi eseguire una "installazione da sviluppatore" del pacchetto.
Questo metodo di installazione ti consente di installare la directory di lavoro nel tuo ambiente Python, in modo che le modifiche in corso si riflettano quando importi il pacchetto.
Configura il repository
Per prima cosa configura virtualenv e repository, come descritto sopra .
Installa protoc
Poiché TensorFlow Hub utilizza protobuf, avrai bisogno del compilatore protobuf per creare i file python _pb2.py
necessari dai file .proto
.
Su un Mac:
(tensorflow_hub_env)~/hub/$ brew install protobuf
Su Linux
(tensorflow_hub_env)~/hub/$ sudo apt install protobuf-compiler
Compilare i file .proto
Inizialmente non ci sono file _pb2.py
nella directory:
(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py
Esegui protoc
per crearli:
(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
Importa direttamente dal repository
Con i file _pb2.py
installati, puoi provare le modifiche direttamente dalla directory TensorFlow Hub:
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Installare in modalità "sviluppatore".
Oppure per utilizzarlo dall'esterno della root del repository, puoi utilizzare l'installazione setup.py develop
:
(tensorflow_hub_env)~/hub/$ python tensorflow_hub/pip_package/setup.py develop
Ora puoi utilizzare le modifiche locali in un normale Python virtualenv, senza la necessità di ricostruire e installare il pacchetto pip per ogni nuova modifica:
(tensorflow_hub_env)~/hub/$ cd .. # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Disattiva il virtualenv
(tensorflow_hub_env)~/hub/$ deactivate