Creazione del pacchetto pip TensorFlow Hub utilizzando Linux

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