إنشاء حزمة النقاط 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

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

إنشاء البرنامج النصي لتغليف النقاط 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