إنشاء حزمة نقطة TensorFlow Hub باستخدام Linux

إذا قمت بإجراء تغييرات على حزمة نقطة 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

بناء الحزمة وتثبيتها

قم بإنشاء برنامج نصي لتعبئة Pip Pip 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 ، فمن الأسهل العمل مع أدوات مفتوحة المصدر. لذلك يمكنك إجراء "تثبيت مطور" للحزمة.

تسمح لك طريقة التثبيت هذه بتثبيت دليل العمل في بيئة Python الخاصة بك ، بحيث تنعكس التغييرات المستمرة عند استيراد الحزمة.

قم بإعداد المستودع

قم أولاً بإعداد Virtualenv والمستودع ، كما هو موضح أعلاه .

تثبيت protoc

نظرًا لأن TensorFlow Hub يستخدم protobufs ، فستحتاج إلى مترجم protobuf لإنشاء ملفات python _pb2.py الضرورية من ملفات .proto .

على جهاز Mac:

(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 العادي ، دون الحاجة إلى إعادة إنشاء حزمة النقطة وتثبيتها لكل تغيير جديد:

(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