אם אתם מפתחים מנוסים של למידת מכונה, וספריית TensorFlow Lite המובנית לא עונה על הצרכים שלכם, אתם יכולים להשתמש בגרסה מותאמת אישית של TensorFlow Lite עם ML Kit. לדוגמה, יכול להיות שתרצו להוסיף פעולות בהתאמה אישית.
דרישות מוקדמות
- סביבת build פעילה של TensorFlow Lite
- עותק של TensorFlow Lite 1.10.1
אפשר לבדוק את הגרסה הנכונה באמצעות Git:
git checkout -b workgit reset --hard tflite-v1.10.1git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23
יצירת ספריית TensorFlow Lite
- בונים את Tensorflow Lite (עם השינויים שביצעתם) לפי ההוראות הרגילות.
- בונים את המסגרת:
tensorflow/lite/lib_package/create_ios_frameworks.sh
אפשר למצוא את המסגרת שנוצרה בכתובת tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip
יצירת פוד מקומי
- יצירת ספרייה ל-Pod המקומי
- מריצים את הפקודה
pod lib create TensorFlowLiteבספרייה שיצרתם. - יוצרים ספרייה בשם
Frameworksבתוך הספרייהTensorFlowLite - מבטלים את הדחיסה של קובץ
tensorflow_lite.framework.zipשנוצר למעלה. - מעתיקים את
tensorflow_lite.frameworkאחרי שחולצים אותו אלTensorFlowLite/Frameworks - משנים את
TensorFlowLite/TensorFlowLite.podspecשנוצר כך שיפנה לספרייה:
Pod::Spec.new do |s|
s.name = 'TensorFlowLite'
s.version = '0.1.7' # Version must match.
s.ios.deployment_target = '9.0'
# ... make other changes as desired
internal_pod_root = Pathname.pwd
s.frameworks = 'Accelerate'
s.libraries = 'c++'
s.vendored_frameworks = 'Frameworks/tensorflow_lite.framework'
s.pod_target_xcconfig = {
'SWIFT_VERSION' => '4.0',
'INTERNAL_POD_ROOT' => "#{internal_pod_root}",
'HEADER_SEARCH_PATHS' => "$(inherited) '${INTERNAL_POD_ROOT}/Frameworks/tensorflow_lite.framework/Headers'",
'OTHER_LDFLAGS' => "-force_load '${INTERNAL_POD_ROOT}/Frameworks/tensorflow_lite.framework/tensorflow_lite'"
}
end
הפניה ל-Pod בהתאמה אישית בפרויקט
אפשר לכלול את ה-Pod המותאם אישית על ידי הפניה אליו ישירות מתוך Podfile של האפליקציה:
pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'
אפשרויות נוספות לניהול של pods פרטיים מופיעות במאמר Private Pods במסמכי התיעוד של Cocoapods. שימו לב שהגרסה חייבת להיות זהה לחלוטין, ועליכם לציין את הגרסה הזו כשאתם כוללים את ה-pod מהמאגר הפרטי שלכם, לדוגמה: pod 'TensorFlowLite', "1.10.1".