用代码手动加载TuriCreate的机器学习模型

最近一直在玩机器学习在金融量化交易的应用, 尝试性的写了一个产品, 主体逻辑代码是用Python写的, 其中有一部分是是使用XCode写的命令行工具, 用来调用机器学习模型输出结果, 与Python的主体程序进行沟通. XCode自身有一个功能, 直接可以打开mlmodel文件, 直接加载到XCode中即可. 但是, 我的逻辑设计是每个独立股票各自独立的机器学习模型, 几千个模型都导入到XCode自然不方便, 于是便使用代码手动加载模型. 

原本这是一个比较简单的过程, 也没有什么好写的. 但是, 一个朋友说起自己要做人工智能部分的东西, 他搞了几十个模型, 是手动一个个拉到XCode进行处理, 我告诉了他其实可以手动通过代码编译模型, 再在代码中加载的. 虽然是个很小的功能, 但想到这个东西可能对其他人也有帮助, 就随便写一个简单的例子来说一下. 


主要的代码部分就是上述这么简单, 基本的流程有5步:

1. 获取模型文件的所在目录URL, 注意, 这个URL必须是本地的文件URL, 如果想考虑支持在线模型, 可以考虑搞一个下载功能. 

2. 编译模型, .mlmodel文件会被编译成.mlmodelc文件夹, 放到一个临时文件区, 然后输出编译好的.mlmodelc目录URL. 

3. 使用编译后的.mlmodelc生成模型. 

4. 生成一个参数准备器. 

5. 使用生成后的参数准备器放到模型中进行计算, 得到具体的结果. 


没错, 就这么简单. 

再额外提一点, 临时文件区是有存量限制的, 单个进程只能在临时文件区生成999个临时文件, 如果有超过1000个以上的模型要处理, 必须考虑手动移动编译好的.mlmodelc文件. 否则, 编译.mlmodel的过程会失败, 而且, 失败的错误莫名其妙, 我当时在这点上搞砸了, 研究了好久, 才发现bug所在. 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,251评论 4 61
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,615评论 8 265
  • 乡下是一片清土,除了鸡犬相闻,邻里之间的一些矛盾,没有名利,没有时髦,没有土包子之说,城市却有时髦,有名利,有土...
    微若尘阅读 411评论 0 0
  • 本人以前是敏感肌肤加干性肌肤 因为用了很多激素产品 导致皮肤角质层薄 反反复复一直好不了 一到春天就过敏❗️❗️ ...
    漫漫漫琪琪阅读 321评论 0 0
  • 海比特第五天,也是训练营的最后一天,同时也是习惯养成正是启程的一天。 1.痛点 习惯养成到了后面,很多人可能会忘记...
    青逻_ZQ阅读 251评论 1 1