Tworzenie pakietu pip TensorFlow Hub przy użyciu systemu Linux

Jeśli wprowadzisz zmiany w pakiecie pip TensorFlow Hub, prawdopodobnie będziesz chciał ponownie skompilować pakiet pip ze źródła, aby wypróbować zmiany.

Wymaga to:

  • Pyton
  • TensorFlow
  • Git
  • Bazel

Alternatywnie, jeśli zainstalujesz kompilator protobuf, możesz wypróbować zmiany bez korzystania z bazel .

Skonfiguruj środowisko wirtualne

Aktywuj środowisko wirtualne

Zainstaluj virtualenv, jeśli jeszcze nie jest zainstalowany:

~$ sudo apt-get install python-virtualenv

Utwórz wirtualne środowisko do tworzenia pakietów:

~$ virtualenv --system-site-packages tensorflow_hub_env

I aktywuj go:

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

Sklonuj repozytorium TensorFlow Hub.

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

Przetestuj swoje zmiany

Uruchom testy TensorFlow Hub

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

Zbuduj i zainstaluj pakiet

Zbuduj skrypt pakowania pip dla TensorFlow Hub

Aby zbudować pakiet pip dla TensorFlow Hub:

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

Utwórz pakiet pip TensorFlow Hub

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

Zainstaluj i przetestuj pakiet pip (opcjonalnie)

Uruchom następujące polecenia, aby zainstalować pakiet pip.

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

Test importu TensorFlow Hub:

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

Instalacja „Developer” (eksperymentalna)

Kompilacja pakietu za pomocą Bazel jest jedyną oficjalnie obsługiwaną metodą. Jeśli jednak nie znasz Bazel, łatwiej jest korzystać z narzędzi open source. W tym celu możesz wykonać „instalację deweloperską” pakietu.

Ta metoda instalacji umożliwia zainstalowanie katalogu roboczego w środowisku Python, dzięki czemu bieżące zmiany zostaną uwzględnione podczas importowania pakietu.

Skonfiguruj repozytorium

Najpierw skonfiguruj środowisko wirtualne i repozytorium, jak opisano powyżej .

Zainstaluj protoc

Ponieważ TensorFlow Hub korzysta z protobufów, będziesz potrzebować kompilatora protobufów, aby utworzyć niezbędne pliki python _pb2.py z plików .proto .

Na komputerze Mac:

(tensorflow_hub_env)~/hub/$ brew install protobuf

W systemie Linux

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

Skompiluj pliki .proto

Początkowo w katalogu nie ma plików _pb2.py :

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

Uruchom protoc , aby je utworzyć:

(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

Importuj bezpośrednio z repozytorium

Mając już pliki _pb2.py , możesz wypróbować swoje modyfikacje bezpośrednio w katalogu TensorFlow Hub:

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

Zainstaluj w trybie „deweloperskim”

Aby użyć tego spoza katalogu głównego repozytorium, możesz skorzystać z instalacji setup.py develop :

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

Teraz możesz używać swoich lokalnych zmian w zwykłym wirtualnym środowisku Python, bez konieczności ponownego instalowania i przebudowywania pakietu pip dla każdej nowej zmiany:

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

Dezaktywuj środowisko wirtualne

(tensorflow_hub_env)~/hub/$ deactivate
,

Jeśli wprowadzisz zmiany w pakiecie pip TensorFlow Hub, prawdopodobnie będziesz chciał ponownie skompilować pakiet pip ze źródła, aby wypróbować zmiany.

Wymaga to:

  • Pyton
  • TensorFlow
  • Git
  • Bazel

Alternatywnie, jeśli zainstalujesz kompilator protobuf, możesz wypróbować zmiany bez korzystania z bazel .

Skonfiguruj środowisko wirtualne

Aktywuj środowisko wirtualne

Zainstaluj virtualenv, jeśli jeszcze nie jest zainstalowany:

~$ sudo apt-get install python-virtualenv

Utwórz wirtualne środowisko do tworzenia pakietów:

~$ virtualenv --system-site-packages tensorflow_hub_env

I aktywuj go:

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

Sklonuj repozytorium TensorFlow Hub.

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

Przetestuj swoje zmiany

Uruchom testy TensorFlow Hub

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

Zbuduj i zainstaluj pakiet

Zbuduj skrypt pakowania pip dla TensorFlow Hub

Aby zbudować pakiet pip dla TensorFlow Hub:

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

Utwórz pakiet pip TensorFlow Hub

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

Zainstaluj i przetestuj pakiet pip (opcjonalnie)

Uruchom następujące polecenia, aby zainstalować pakiet pip.

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

Test importu TensorFlow Hub:

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

Instalacja „Developer” (eksperymentalna)

Kompilacja pakietu za pomocą Bazel jest jedyną oficjalnie obsługiwaną metodą. Jeśli jednak nie znasz Bazel, łatwiej jest korzystać z narzędzi open source. W tym celu możesz wykonać „instalację deweloperską” pakietu.

Ta metoda instalacji umożliwia zainstalowanie katalogu roboczego w środowisku Python, dzięki czemu bieżące zmiany zostaną uwzględnione podczas importowania pakietu.

Skonfiguruj repozytorium

Najpierw skonfiguruj środowisko wirtualne i repozytorium, jak opisano powyżej .

Zainstaluj protoc

Ponieważ TensorFlow Hub korzysta z protobufów, będziesz potrzebować kompilatora protobufów, aby utworzyć niezbędne pliki python _pb2.py z plików .proto .

Na komputerze Mac:

(tensorflow_hub_env)~/hub/$ brew install protobuf

W systemie Linux

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

Skompiluj pliki .proto

Początkowo w katalogu nie ma plików _pb2.py :

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

Uruchom protoc , aby je utworzyć:

(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

Importuj bezpośrednio z repozytorium

Mając już pliki _pb2.py , możesz wypróbować swoje modyfikacje bezpośrednio w katalogu TensorFlow Hub:

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

Zainstaluj w trybie „deweloperskim”

Aby użyć tego spoza katalogu głównego repozytorium, możesz skorzystać z instalacji setup.py develop :

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

Teraz możesz używać swoich lokalnych zmian w zwykłym wirtualnym środowisku Python, bez konieczności ponownego instalowania i przebudowywania pakietu pip dla każdej nowej zmiany:

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

Dezaktywuj środowisko wirtualne

(tensorflow_hub_env)~/hub/$ deactivate