Membuat paket pip TensorFlow Hub menggunakan Linux

Jika Anda membuat perubahan pada paket pip TensorFlow Hub, Anda mungkin ingin membuat ulang paket pip dari sumber untuk mencoba perubahan Anda.

Ini membutuhkan:

  • ular piton
  • Aliran Tensor
  • Git
  • Bazel

Alternatifnya, jika Anda menginstal kompiler protobuf, Anda dapat mencoba perubahan Anda tanpa menggunakan bazel .

Siapkan virtualenv

Aktifkan virtualenv

Instal virtualenv jika belum diinstal:

~$ sudo apt-get install python-virtualenv

Buat lingkungan virtual untuk pembuatan paket:

~$ virtualenv --system-site-packages tensorflow_hub_env

Dan aktifkan:

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

Kloning repositori TensorFlow Hub.

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

Uji perubahan Anda

Jalankan pengujian TensorFlow Hub

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

Bangun dan instal paket

Buat skrip pengemasan pip TensorFlow Hub

Untuk membuat paket pip untuk TensorFlow Hub:

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

Buat paket pip TensorFlow Hub

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

Instal dan uji paket pip (opsional)

Jalankan perintah berikut untuk menginstal paket pip.

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

Uji impor TensorFlow Hub:

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

Instalasi "Pengembang" (eksperimental)

Membangun paket dengan bazel adalah satu-satunya metode yang didukung secara resmi. Namun jika Anda tidak terbiasa dengan bazel, lebih mudah bekerja dengan alat sumber terbuka. Untuk itu Anda dapat melakukan "instalasi pengembang" pada paket tersebut.

Metode instalasi ini memungkinkan Anda untuk menginstal direktori kerja ke dalam lingkungan python Anda, sehingga perubahan yang sedang berlangsung akan terlihat saat Anda mengimpor paket.

Siapkan repositori

Pertama-tama siapkan virtualenv dan repositori, seperti dijelaskan di atas .

Instal protoc

Karena TensorFlow Hub menggunakan protobuf, Anda memerlukan kompiler protobuf untuk membuat file python _pb2.py yang diperlukan dari file .proto .

Di Mac:

(tensorflow_hub_env)~/hub/$ brew install protobuf

Di Linux

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

Kompilasi file .proto

Awalnya tidak ada file _pb2.py di direktori:

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

Jalankan protoc untuk membuatnya:

(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

Impor langsung dari repositori

Dengan file _pb2.py yang ada, Anda dapat mencoba modifikasi langsung dari direktori TensorFlow Hub:

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

Instal dalam mode "pengembang".

Atau untuk menggunakan ini dari luar root repositori, Anda dapat menggunakan instalasi setup.py develop :

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

Sekarang Anda dapat menggunakan perubahan lokal di virtualenv python biasa, tanpa perlu membangun kembali dan menginstal paket pip untuk setiap perubahan baru:

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

Nonaktifkan virtualenv

(tensorflow_hub_env)~/hub/$ deactivate