שימוש ב-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. מבצעים Build של Tensorflow Lite (עם השינויים שביצעתם) לפי ההוראות הרגילות.
  2. בונים את המסגרת:
tensorflow/lite/lib_package/create_ios_frameworks.sh

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

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

  1. יצירת ספרייה לפוד המקומי
  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'

אפשרויות נוספות לניהול פודים פרטיים מופיעות במאמר Private Pods (פודים פרטיים) במאמרי העזרה של Cocoapods. שימו לב שהגרסה חייבת להיות זהה בדיוק, ועליכם לציין את הגרסה הזו כשאתם כוללים את ה-pod מהמאגר הפרטי שלכם, לדוגמה pod 'TensorFlowLite', "1.10.1".