Tạo gói pip TensorFlow Hub bằng Linux

Nếu bạn thực hiện các thay đổi đối với gói pip TensorFlow Hub, bạn có thể sẽ muốn xây dựng lại gói pip từ nguồn để thử các thay đổi của mình.

Điều này đòi hỏi:

  • Python
  • Dòng chảy căng
  • Git
  • Bazel

Ngoài ra, nếu bạn cài đặt trình biên dịch protobuf, bạn có thể thử các thay đổi của mình mà không cần sử dụng bazel .

Thiết lập một virtualenv

Kích hoạt virtualenv

Cài đặt virtualenv nếu nó chưa được cài đặt:

~$ sudo apt-get install python-virtualenv

Tạo môi trường ảo để tạo gói:

~$ virtualenv --system-site-packages tensorflow_hub_env

Và kích hoạt nó:

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

Sao chép kho lưu trữ TensorFlow Hub.

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

Kiểm tra những thay đổi của bạn

Chạy thử nghiệm của TensorFlow Hub

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

Xây dựng và cài đặt gói

Xây dựng tập lệnh đóng gói pip TensorFlow Hub

Để xây dựng gói pip cho TensorFlow Hub:

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

Tạo gói pip TensorFlow Hub

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

Cài đặt và kiểm tra gói pip (tùy chọn)

Chạy các lệnh sau để cài đặt gói pip.

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

Kiểm tra nhập TensorFlow Hub:

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

Cài đặt "Nhà phát triển" (thử nghiệm)

Xây dựng gói bằng bazel là phương pháp được hỗ trợ chính thức duy nhất. Tuy nhiên, nếu bạn không quen với bazel thì làm việc với các công cụ nguồn mở sẽ đơn giản hơn. Để làm được điều đó, bạn có thể thực hiện "cài đặt dành cho nhà phát triển" gói.

Phương pháp cài đặt này cho phép bạn cài đặt thư mục làm việc vào môi trường python của mình để những thay đổi đang diễn ra được phản ánh khi bạn nhập gói.

Thiết lập kho lưu trữ

Đầu tiên hãy thiết lập virtualenv và kho lưu trữ, như được mô tả ở trên .

Cài đặt protoc

Vì TensorFlow Hub sử dụng protobuf nên bạn sẽ cần trình biên dịch protobuf để tạo các tệp python _pb2.py cần thiết từ các tệp .proto .

Trên máy Mac:

(tensorflow_hub_env)~/hub/$ brew install protobuf

Trên Linux

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

Biên dịch các tệp .proto

Ban đầu không có tệp _pb2.py trong thư mục:

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

Chạy protoc để tạo chúng:

(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

Nhập trực tiếp từ kho lưu trữ

Với các tệp _pb2.py đã có, bạn có thể dùng thử các sửa đổi của mình trực tiếp từ thư mục TensorFlow Hub:

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

Cài đặt ở chế độ "nhà phát triển"

Hoặc để sử dụng cái này từ bên ngoài kho lưu trữ gốc, bạn có thể sử dụng cài đặt setup.py develop :

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

Bây giờ bạn có thể sử dụng các thay đổi cục bộ của mình trong virtualenv python thông thường mà không cần phải xây dựng lại và cài đặt gói pip cho mỗi thay đổi mới:

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

Vô hiệu hóa virtualenv

(tensorflow_hub_env)~/hub/$ deactivate