إذا قمت بإجراء تغييرات على حزمة النقاط TensorFlow Hub، فمن المحتمل أن ترغب في إعادة بناء حزمة النقاط من المصدر لتجربة تغييراتك.
وهذا يتطلب:
- بايثون
- TensorFlow
- بوابة
- بازل
وبدلاً من ذلك، إذا قمت بتثبيت مترجم 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
قم بإنشاء حزمة النقاط TensorFlow Hub
(tensorflow_hub_env)~/hub/$ bazel-bin/tensorflow_hub/pip_package/build_pip_package \
/tmp/tensorflow_hub_pkg
تثبيت واختبار حزمة النقطة (اختياري)
قم بتشغيل الأوامر التالية لتثبيت حزمة النقطة.
(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، فستحتاج إلى مترجم protobuf لإنشاء ملفات python _pb2.py
الضرورية من ملفات .proto
.
على جهاز ماك:
(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
يمكنك الآن استخدام تغييراتك المحلية في python virtualenv العادي، دون الحاجة إلى إعادة إنشاء وتثبيت حزمة 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