اگر در بسته Pip TensorFlow Hub تغییراتی ایجاد کنید، احتمالاً می خواهید بسته pip را از منبع بازسازی کنید تا تغییرات خود را امتحان کنید.
این مستلزم:
- پایتون
- TensorFlow
- Git
- بازل
از طرف دیگر، اگر کامپایلر 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 دستورات زیر را اجرا کنید.
(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