ایجاد بسته 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

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

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

بسته پیپ 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 تنها روش رسمی پشتیبانی شده است. با این حال اگر با bazel آشنا نیستید، کار با ابزارهای متن‌باز ساده‌تر است. برای این کار می‌توانید پکیج را "نصب توسط توسعه‌دهنده" انجام دهید.

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

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

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

نصب protoc

از آنجا که TensorFlow Hub از protobufs استفاده می‌کند، برای ایجاد فایل‌های پایتون _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

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

(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
،

اگر تغییراتی در بسته 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

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

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

بسته پیپ 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 تنها روش رسمی پشتیبانی شده است. با این حال اگر با bazel آشنا نیستید، کار با ابزارهای متن‌باز ساده‌تر است. برای این کار می‌توانید پکیج را "نصب توسط توسعه‌دهنده" انجام دهید.

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

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

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

نصب protoc

از آنجا که TensorFlow Hub از protobufs استفاده می‌کند، برای ایجاد فایل‌های پایتون _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

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

(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