שימוש ב-build בהתאמה אישית של TensorFlow Lite

אם אתם מפתחים מנוסים של למידת מכונה, והספרייה המובנית של TensorFlow Lite לא עונה על הצרכים שלכם, אתם יכולים להשתמש בגרסה מותאמת אישית של TensorFlow Lite עם ML Kit. לדוגמה, יכול להיות שתרצו להוסיף פעולות מותאמות אישית.

דרישות מוקדמות

  • סביבת build פעילה של TensorFlow Lite
  • שליפה של TensorFlow Lite 1.10.1

אפשר להשתמש ב-Git כדי לבדוק את הגרסה הנכונה:

git checkout -b work
git reset --hard tflite-v1.10.1
git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23

יצירת ספריית TensorFlow Lite

  1. יוצרים Tensorflow Lite (עם השינויים שביצעתם) לפי ההוראות הרגילות.
  2. בונים את המסגרת:
tensorflow/lite/lib_package/create_ios_frameworks.sh

אפשר למצוא את המסגרת שנוצרה בכתובת tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip

יצירת פוד מקומי

  1. יצירת ספרייה ל-Pod המקומי
  2. מריצים את הפקודה pod lib create TensorFlowLite בספרייה שיצרתם.
  3. יוצרים ספרייה בשם Frameworks בתוך הספרייה TensorFlowLite
  4. מבטלים את הדחיסה של קובץ tensorflow_lite.framework.zip שנוצר למעלה.
  5. מעתיקים את הקובץ tensorflow_lite.framework שלא נפרס אל TensorFlowLite/Frameworks
  6. משנים את הקוד שנוצר 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".