Si vous apportez des modifications au package pip TensorFlow Hub, vous souhaiterez probablement reconstruire le package pip à partir des sources pour essayer vos modifications.
Cela nécessite :
- Python
- TensorFlow
- Git
- Bazel
Alternativement, si vous installez le compilateur protobuf, vous pouvez essayer vos modifications sans utiliser bazel .
Configurer un virtualenv
Activer virtualenv
Installez virtualenv s'il n'est pas déjà installé :
~$ sudo apt-get install python-virtualenv
Créez un environnement virtuel pour la création du package :
~$ virtualenv --system-site-packages tensorflow_hub_env
Et activez-le :
~$ source ~/tensorflow_hub_env/bin/activate # bash, sh, ksh, or zsh
~$ source ~/tensorflow_hub_env/bin/activate.csh # csh or tcsh
Clonez le référentiel TensorFlow Hub.
(tensorflow_hub_env)~/$ git clone https://github.com/tensorflow/hub
(tensorflow_hub_env)~/$ cd hub
Testez vos modifications
Exécuter les tests de TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel test tensorflow_hub:all
Construire et installer le package
Créer un script d'empaquetage pip TensorFlow Hub
Pour créer un package pip pour TensorFlow Hub :
(tensorflow_hub_env)~/hub/$ bazel build tensorflow_hub/pip_package:build_pip_package
Créer le package pip TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg
Installez et testez le package pip (facultatif)
Exécutez les commandes suivantes pour installer le package pip.
(tensorflow_hub_env)~/hub/$ pip install /tmp/tensorflow_hub_pkg/*.whl
Test d'importation de TensorFlow Hub :
(tensorflow_hub_env)~/hub/$ cd .. # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Installation "Développeur" (expérimentale)
Construire le package avec bazel est la seule méthode officiellement prise en charge. Cependant, si vous n'êtes pas familier avec Bazel, il est plus simple de travailler avec des outils open source. Pour cela, vous pouvez effectuer une "installation par le développeur" du package.
Cette méthode d'installation vous permet d'installer le répertoire de travail dans votre environnement Python, afin que les modifications en cours soient reflétées lorsque vous importez le package.
Configurer le référentiel
Configurez d’abord virtualenv et le référentiel, comme décrit ci-dessus .
protoc
Étant donné que TensorFlow Hub utilise des protobufs, vous aurez besoin du compilateur protobuf pour créer les fichiers python _pb2.py
nécessaires à partir des fichiers .proto
.
Sur un Mac :
(tensorflow_hub_env)~/hub/$ brew install protobuf
Sous Linux
(tensorflow_hub_env)~/hub/$ sudo apt install protobuf-compiler
Compilez les fichiers .proto
Initialement, il n'y a pas de fichiers _pb2.py
dans le répertoire :
(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py
Exécutez protoc
pour les créer :
(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
Importer directement depuis le référentiel
Une fois les fichiers _pb2.py
en place, vous pouvez essayer vos modifications directement à partir du répertoire TensorFlow Hub :
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Installer en mode "développeur"
Ou pour l'utiliser depuis l'extérieur de la racine du référentiel, vous pouvez utiliser l'installation setup.py develop
:
(tensorflow_hub_env)~/hub/$ python tensorflow_hub/pip_package/setup.py develop
Vous pouvez désormais utiliser vos modifications locales dans un virtualenv python standard, sans avoir besoin de reconstruire et d'installer le package pip pour chaque nouvelle modification :
(tensorflow_hub_env)~/hub/$ cd .. # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"
Désactiver le virtualenv
(tensorflow_hub_env)~/hub/$ deactivate