我需要从源代码构建TensorFlowLite Swift Framework / cocoapod,然后在其中一个Swift项目中使用它代替原始框架。
在一些情况下但未成功下载代码并遵循说明:
1)https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/experimental/swift
a)python configure.py
b) CocoaPods开发人员不适用,因为它不从本地TensofFlow文件夹中获取源代码(或者我误会了吗?)
c) Bazel开发人员,我这样做:
bazel build tensorflow/lite/experimental/swift:TensorFlowLite
bazel test tensorflow/lite/experimental/swift:Tests --swiftcopt=-enable-testing
最终
generate_xcodeproj.sh --genconfig tensorflow/lite/experimental/swift/TensorFlowLite.tulsiproj:TensorFlowLite --outputfolder ~/path/to/generated/TensorFlowLite.xcodeproj
结果,我得到一个包含libtensorflow-lite-experimental-swift-TensorFlowLite.a和几个 idx 文件的项目。它可以编译,并且我看到.a文件(但是由于各种原因,应用程序和测试都不能编译),而且我还不太了解如何将.a lib与Swift文件一起使用,因为它没有模块/头文件等文件。
所有这些练习之后,在TensorFlow的根目录和TensorFlowLiteSwift.podspec
文件夹中都有experimental/Swift
。它仍然取决于TensorFlowLiteC
,如果我通过路径参数在另一个项目中引用此podspec,我可以执行import TensorFlowLiteC
但不能执行import TensorFlowLiteSwift
/ import TensorFlowLite
,并且我相信TensorFlowLiteC是仍然来自互联网,而不是本地。
2)来自此处的自定义框架路径: https://firebase.google.com/docs/ml-kit/ios/use-custom-tflite
这里有几个问题:
a)如果我尝试仅使用内部添加了tensorflow_lite.framework的项目,则无法在Swift文件中引用TensorFlowLite
/ TensorFlowLiteC
等。
b)如果我尝试遵循创建本地pod并引用pod项目的路线,则pod install
不起作用,因为未设置强制性参数(使用提供的示例)。
我希望获得一个从本地TensorFlowFiles构建的Xcode项目或工作区,并且可以从其他项目(例如“ import TensorFlowLiteSwift”或“ import TensorFlowLite”)中引用
问题是我什至不知道实现它的正确方法是什么。
谢谢。
答案 0 :(得分:1)
好的,我在这里找到答案:
从根tensorflow文件夹构建TensorFlowLiteC框架:
bazel build --config=ios_fat -c opt //tensorflow/lite/experimental/ios:TensorFlowLiteC_framework
bazel-bin/tensorflow/lite/experimental/ios/TensorFlowLiteC_framework.zip
-lc++
完成。你可以做
import TensorFlowLiteC
swift
文件夹中的源文件。