ایجاد بسته Pip TensorFlow Hub با استفاده از لینوکس

اگر در بسته Pip TensorFlow Hub تغییراتی ایجاد کنید، احتمالاً می خواهید بسته pip را از منبع بازسازی کنید تا تغییرات خود را امتحان کنید.

این مستلزم:

از طرف دیگر، اگر کامپایلر 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 را بسازید

برای ساخت یک بسته پیپ برای TensorFlow Hub:

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

بسته Pip TensorFlow Hub را ایجاد کنید

(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 آشنا نیستید کار با ابزارهای منبع باز ساده تر است. برای آن می توانید یک "نصب برنامه نویس" بسته را انجام دهید.

این روش نصب به شما امکان می دهد دایرکتوری کاری را در محیط پایتون خود نصب کنید، به طوری که تغییرات مداوم هنگام وارد کردن بسته منعکس شود.

مخزن را راه اندازی کنید

ابتدا virtualenv و مخزن را همانطور که در بالا توضیح دادیم راه اندازی کنید.

protoc نصب کنید

از آنجایی که TensorFlow Hub از پروتوباف‌ها استفاده می‌کند، برای ایجاد فایل‌های ضروری python _pb2.py از فایل‌های .proto به کامپایلر protobuf نیاز دارید.

در مک:

(tensorflow_hub_env)~/hub/$ brew install protobuf

در لینوکس

(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

اکنون می توانید بدون نیاز به بازسازی و نصب بسته پیپ برای هر تغییر جدید، از تغییرات محلی خود در یک virtualenv پایتون معمولی استفاده کنید:

(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