Jeśli jesteś doświadczonym programistą ML i gotową TensorFlow Lite biblioteka mu nie odpowiada, możesz użyć kompilacja TensorFlow Lite z ML Kit. Dla: możesz dodać operacje niestandardowe.
Wymagania wstępne
- działającego środowiska kompilacji TensorFlow Lite,
- Proces płatności za pomocą TensorFlow Lite 1.10.1
Prawidłową wersję możesz sprawdzić za pomocą Git:
git checkout -b work
git reset --hard tflite-v1.10.1
git cherry-pick 4dcfddc5d12018a5a0fdca652b9221ed95e9eb23
Tworzenie biblioteki Tensorflow Lite
- Utwórz Tensorflow Lite (z modyfikacjami) zgodnie z instrukcje standardowe,
- Utwórz strukturę:
tensorflow/lite/lib_package/create_ios_frameworks.sh
Wygenerowaną platformę znajdziesz na tensorflow/lite/gen/ios_frameworks/tensorflow_lite.framework.zip
Tworzę lokalny pod
- Utwórz katalog dla lokalnego poda
- Uruchom program
pod lib create TensorFlowLite
w utworzonym katalogu - Utwórz katalog
Frameworks
w kataloguTensorFlowLite
- Rozpakuj wygenerowany powyżej plik
tensorflow_lite.framework.zip
- Skopiuj rozpakowany plik
tensorflow_lite.framework
do folderuTensorFlowLite/Frameworks
- Zmodyfikuj wygenerowany plik
TensorFlowLite/TensorFlowLite.podspec
, aby odwoływał się do biblioteki:
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
Odwoływanie się do niestandardowego poda w projekcie
Możesz uwzględnić niestandardowy pod, odwołując się do niego bezpośrednio w aplikacji
Podfile
:
pod 'Firebase/MLModelInterpreter'
pod 'TensorFlowLite', :path => 'path/to/your/TensorflowLite'
Inne opcje zarządzania prywatnymi podami znajdziesz w artykule
Pody prywatne w
dokumentacji Cocoapods. Wersja musi być identyczna.
powinien odwoływać się do tej wersji, dodając poda z
repozytorium prywatne, np. pod 'TensorFlowLite', "1.10.1"