Skafos是将机器学习模型部署到移动应用并在生产环境中管理相同模型的一种工具。Skafos旨在与任何主流云服务提供商集成,用户可以利用AWS、Azure、Google、IBM或几乎任何其他计算环境来组织数据和训练模型。然后Skafos对模型版本进行版本管理、部署和监视,这些模型在您的生产应用环境中运行
安装
CocoaPods
CocoaPods是Cocoa项目的依赖关系管理器。有关使用和安装说明,请访问他们的网站。要使用CocoaPods将Skafos集成到Xcode项目中,请在Podfile中指定它
pod 'Skafos', '~> 4.0.2'
Carthage
Carthage是一个去中心化的依赖关系管理器,它构建您的依赖关系并提供二进制框架。要使用Carthage将Skafos集成到Xcode项目中,请在Cartfile中指定它
github "skafos/ios" "4.0.2"
使用
在您的应用代理中,添加以下内容:
import Skafos
然后使用您的项目令牌配置框架:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// ...
Skafos.initialize("your project token")
return true
}
现在,您已准备好调用Skafos并要求它加载您的模型。
Skafos.load("your asset name") { (error, asset) in
if let error = error {
print("Oh man, an error: \(error)")
return
}
if let model = asset.model {
self.classifier.model = model
}
for file in asset.files {
print("File name: \(file.name) and path: \(file.path)")
}
// And if you have multiple MLModels you can always loop through those too:
for model in asset.models {
print("Model name: \(model.name), path: \(model.path), and model itself: \(model.model)")
}
}
注意:Swizzle默认启用,如果您选择禁用swizzle,请将
swizzle: false
添加到您的初始化函数,并将以下内容添加到您的应用代理中:
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
Skafos.application(application, performFetchWithCompletionHandler: completionHandler)
}
func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) {
Skafos.application(application, handleEventsForBackgroundURLSession: identifier, completionHandler: completionHandler)
}
许可证
Skafos Swift框架使用了Apache2许可证,位于LICENSE文件中。
有问题?
通过电子邮件 [email protected] 或通过twitter @skafos 联系我们。