Se apporti modifiche al pacchetto pip di TensorFlow Hub, probabilmente vorrai ricompilare il pacchetto pip dai sorgenti per testare le modifiche.
Ciò richiede:
- Pitone
- TensorFlow
- Get
- Bazel
In alternativa, installando il compilatore protobuf è possibile testare le modifiche senza utilizzare bazel .
Configura un ambiente virtuale
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 di TensorFlow Hub.
(tensorflow_hub_env)~/$ git clone https://github.com/tensorflow/hub
(tensorflow_hub_env)~/$ cd hub
Verifica le modifiche
Esegui i test di TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel test tensorflow_hub:all
Compila e installa il pacchetto
Creazione dello 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)
Eseguire 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 compilazione del pacchetto con Bazel è l'unico metodo ufficialmente supportato. Tuttavia, se non hai familiarità con Bazel, è più semplice lavorare con strumenti open source. In tal caso, puoi eseguire un'installazione "developer install" del pacchetto.
Questo metodo di installazione consente di installare la directory di lavoro nell'ambiente Python, in modo che le modifiche in corso vengano riflesse quando si importa il pacchetto.
Configura il repository
Innanzitutto, configura l'ambiente virtuale (virtualenv) e il repository, come descritto in precedenza .
Installare protoc
Poiché TensorFlow Hub utilizza i file protobuf, avrai bisogno del compilatore protobuf per creare i file _pb2.py di Python necessari a partire dai file .proto .
Su un Mac:
(tensorflow_hub_env)~/hub/$ brew install protobuf
Su Linux
(tensorflow_hub_env)~/hub/$ sudo apt install protobuf-compiler
Compila i file .proto
Inizialmente non sono presenti 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
Una volta installati i file _pb2.py , è possibile testare le modifiche direttamente dalla directory di TensorFlow Hub:
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Installa in modalità "sviluppatore".
Oppure, per utilizzarlo al di fuori della directory principale del repository, è possibile 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 ambiente virtuale Python, senza la necessità di ricompilare 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 l'ambiente virtuale
(tensorflow_hub_env)~/hub/$ deactivate