Creación del paquete pip de TensorFlow Hub con Linux

Si realiza cambios en el paquete pip de TensorFlow Hub, es probable que desee reconstruir el paquete pip desde el origen para probar los cambios.

Esto requiere:

  • Pitón
  • TensorFlow
  • Git
  • bazel

Alternativamente, si instala el compilador protobuf, puede probar sus cambios sin usar bazel .

Configurar un entorno virtual

Activar entorno virtual

Instale virtualenv si aún no está instalado:

~$ sudo apt-get install python-virtualenv

Cree un entorno virtual para la creación de paquetes:

~$ virtualenv --system-site-packages tensorflow_hub_env

Y activarlo:

~$ source ~/tensorflow_hub_env/bin/activate  # bash, sh, ksh, or zsh
~$ source ~/tensorflow_hub_env/bin/activate.csh  # csh or tcsh

Clone el repositorio de TensorFlow Hub.

(tensorflow_hub_env)~/$ git clone https://github.com/tensorflow/hub
(tensorflow_hub_env)~/$ cd hub

Pruebe sus cambios

Ejecute las pruebas de TensorFlow Hub

(tensorflow_hub_env)~/hub/$ bazel test tensorflow_hub:all

Compile e instale el paquete

Crear secuencia de comandos de empaquetado de pip de TensorFlow Hub

Para crear un paquete pip para TensorFlow Hub:

(tensorflow_hub_env)~/hub/$ bazel build tensorflow_hub/pip_package:build_pip_package

Crear el paquete pip de TensorFlow Hub

(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg

Instalar y probar el paquete pip (opcional)

Ejecute los siguientes comandos para instalar el paquete pip.

(tensorflow_hub_env)~/hub/$ pip install /tmp/tensorflow_hub_pkg/*.whl

Pruebe la importación de TensorFlow Hub:

(tensorflow_hub_env)~/hub/$ cd ..  # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"

Instalación de "desarrollador" (experimental)

Construir el paquete con bazel es el único método admitido oficialmente. Sin embargo, si no está familiarizado con bazel, es más fácil trabajar con herramientas de código abierto. Para eso, puede hacer una "instalación de desarrollador" del paquete.

Este método de instalación le permite instalar el directorio de trabajo en su entorno de python, de modo que los cambios en curso se reflejen cuando importe el paquete.

Configurar el repositorio

Primero configure virtualenv y el repositorio, como se describe anteriormente .

Instalar protoc

Debido a que TensorFlow Hub usa protobufs, necesitará el compilador protobuf para crear los archivos python _pb2.py necesarios a partir de los archivos .proto .

En una Mac:

(tensorflow_hub_env)~/hub/$ brew install protobuf

en linux

(tensorflow_hub_env)~/hub/$ sudo apt install protobuf-compiler

Compile los archivos .proto

Inicialmente no hay archivos _pb2.py en el directorio:

(tensorflow_hub_env)~/hub/$ ls -1 tensorflow_hub/*_pb2.py

Ejecute protoc para crearlos:

(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

Importar directamente desde el repositorio

Con los archivos _pb2.py en su lugar, puede probar sus modificaciones directamente desde el directorio de TensorFlow Hub:

(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"

Instalar en modo "desarrollador"

O para usar esto desde fuera de la raíz del repositorio, puede usar la instalación setup.py develop :

(tensorflow_hub_env)~/hub/$ python tensorflow_hub/pip_package/setup.py develop

Ahora puede usar sus cambios locales en un virtualenv de python normal, sin necesidad de reconstruir e instalar el paquete pip para cada nuevo cambio:

(tensorflow_hub_env)~/hub/$ cd ..  # exit the directory to avoid confusion
(tensorflow_hub_env)~/$ python -c "import tensorflow_hub as hub"

Desactivar el virtualenv

(tensorflow_hub_env)~/hub/$ deactivate