java – SBT:如何将类的实例打包为JAR?

我的代码基本上是这样的:
class FoodTrainer(images: S3Path) { // data is >100GB file living in S3
  def train(): FoodClassifier       // Very expensive - takes ~5 hours!
}

class FoodClassifier {          // Light-weight API class
  def isHotDog(input: Image): Boolean
}

我想在JAR-assembly(sbt assembly)时,调用val classifier = new FoodTrainer(s3Dir).train()并发布具有分类器实例的JAR,该实例可立即供下游库用户使用.

最简单的方法是什么?对此有哪些既定的范例?我知道它在ML项目中是一个相当普遍的习惯用法,可以发布训练有素的模型http://nlp.stanford.edu/software/stanford-corenlp-models-current.jar

如何使用sbt程序集执行此操作,而不必将大型模型类或数据文件签入到我的版本控制中?

解决方法

您应该将训练产生的数据序列化到自己的文件中.然后,您可以将此数据文件打包到JAR中.您的生产代码打开文件并读取它而不是运行训练算法.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...