Creazione del pacchetto pip TensorFlow Hub utilizzando Linux

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 tue 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 virtualenv Python, 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