Si realiza cambios en el paquete pip de TensorFlow Hub, es probable que desee reconstruir el paquete pip desde el código fuente para probar los cambios.
Esto requiere:
- Pitón
- TensorFlow
- git
- Bazel
Alternativamente, si instala el compilador protobuf, puede probar los 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 del paquete:
~$ virtualenv --system-site-packages tensorflow_hub_env
Y actívalo:
~$ source ~/tensorflow_hub_env/bin/activate # bash, sh, ksh, or zsh
~$ source ~/tensorflow_hub_env/bin/activate.csh # csh or tcsh
Clona 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
Construya e instale el paquete
Cree un script de empaquetado de pips de TensorFlow Hub
Para crear un paquete pip para TensorFlow Hub:
(tensorflow_hub_env)~/hub/$ bazel build tensorflow_hub/pip_package:build_pip_package
Cree el paquete de pips de TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg
Instale y pruebe 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 "Desarrollador" (experimental)
Crear el paquete con bazel es el único método oficialmente admitido. Sin embargo, si no está familiarizado con Bazel, será más sencillo trabajar con herramientas de código abierto. Para eso, puede realizar una "instalación de desarrollador" del paquete.
Este método de instalación le permite instalar el directorio de trabajo en su entorno Python, de modo que los cambios continuos se reflejen cuando importe el paquete.
Configurar el repositorio
Primero configure virtualenv y el repositorio, como se describe arriba .
Instalar protoc
Debido a que TensorFlow Hub usa protobufs, necesitará el compilador de 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
implementados, 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 entorno virtual de Python normal, sin la 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