יצירת חבילת ה-Pip TensorFlow Hub באמצעות לינוקס

אם תבצע שינויים בחבילת ה-Pip של TensorFlow Hub, סביר להניח שתרצה לבנות מחדש את חבילת ה-pip מהמקור כדי לנסות את השינויים שלך.

זה דורש:

  • פִּיתוֹן
  • TensorFlow
  • Git
  • באזל

לחלופין, אם תתקין את מהדר protobuf, תוכל לנסות את השינויים שלך מבלי להשתמש ב-bazel .

הגדר וירטואלי

הפעל את 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 של TensorFlow Hub

כדי לבנות חבילת pip עבור 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 (אופציונלי)

הפעל את הפקודות הבאות כדי להתקין את חבילת 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 פשוט יותר לעבוד עם כלי קוד פתוח. בשביל זה אתה יכול לעשות "התקנת מפתחים" של החבילה.

שיטת התקנה זו מאפשרת לך להתקין את ספריית העבודה בסביבת ה-python שלך, כך ששינויים מתמשכים יבואו לידי ביטוי בעת ייבוא ​​החבילה.

הגדר את המאגר

תחילה הגדר את ה-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