在 Linux 上创建 TensorFlow Hub pip 包

如果您对 TensorFlow Hub pip 包进行了更改,您可能需要从源代码重新构建 pip 包以尝试您的更改。

这需要

  • Python
  • TensorFlow
  • Git
  • Bazel

或者,如果您安装了 protobuf 编译器,您可以 尝试您的更改,而无需使用 bazel

设置 virtualenv

激活 virtualenv

如果 virtualenv 尚未安装,请安装它

~$ sudo apt-get install python-virtualenv

为包创建创建一个虚拟环境

~$ virtualenv --system-site-packages tensorflow_hub_env

并激活它

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

克隆 TensorFlow Hub 存储库。

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

测试您的更改

运行 TensorFlow Hub 的测试

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

构建并安装包

构建 TensorFlow Hub pip 打包脚本

要为 TensorFlow Hub 构建 pip 包

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

创建 TensorFlow Hub pip 包

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

安装并测试 pip 包(可选)

运行以下命令以安装 pip 包。

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

测试导入 TensorFlow Hub

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

"开发人员" 安装(实验性)

使用 bazel 构建包是唯一正式支持的方法。但是,如果您不熟悉 bazel,使用开源工具更容易。为此,您可以对包进行“开发人员安装”。

此安装方法允许您将工作目录安装到您的 python 环境中,以便在您导入包时反映持续的更改。

设置存储库

首先设置 virtualenv 和存储库,如 上面 所述。

安装 protoc

由于 TensorFlow Hub 使用 protobufs,因此您需要 protobuf 编译器才能从 .proto 文件创建必要的 python _pb2.py 文件。

在 Mac 上

(tensorflow_hub_env)~/hub/$ brew install protobuf

在 Linux 上

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

编译 .proto 文件

最初,目录中没有 _pb2.py 文件

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

运行 protoc 来创建它们

(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

直接从存储库导入

有了 _pb2.py 文件,您可以直接从 TensorFlow Hub 目录中尝试您的修改

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

以“开发人员”模式安装

或者,要从存储库根目录之外使用它,您可以使用 setup.py develop 安装

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

现在,您可以在常规 python virtualenv 中使用您的本地更改,而无需为每次新更改重新构建和安装 pip 包

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

停用 virtualenv

(tensorflow_hub_env)~/hub/$ deactivate