使用 Linux 建立 TensorFlow Hub pip 套件

如果您變更 TensorFlow Hub pip 套件,您可能需要從來源重建 pip 套件,才能試用您的變更。

這需要

  • Python
  • TensorFlow
  • Git
  • Bazel

或者,如果您安裝 protobuf 編譯器,您可以試用您的變更,而無需使用 bazel

設定虛擬環境

啟用虛擬環境

如果尚未安裝 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 環境中,以便在您匯入套件時反映持續變更。

設定存放區

首先,如上方所述,設定虛擬環境和存放區。

安裝 protoc

由於 TensorFlow Hub 使用 protobuf,因此您需要 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 虛擬環境中使用您的本機變更,而無需為每個新變更重建並安裝 pip 套件

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

取消啟用虛擬環境

(tensorflow_hub_env)~/hub/$ deactivate