簡體   English   中英

PipelineModel線程安全嗎?

[英]Is PipelineModel thread-safe?

我有一個訓練有素的模型,可以在群集環境中導出到文件系統PipelineModel.save("PATH") 想法是在Web應用程序和調用轉換方法( PipelineModel.transform )的后面使用經過訓練的模型,以在非集群環境中進行實時預測。

可以通過兩種方式加載模型PipelineModel.load("PATH")

方法1-為每個請求加載模型方法2-僅加載一次模型(最好在服務器啟動過程中),並對所有請求使用相同的模型。

我更喜歡方法2,因為它更快。 但是問題是-轉換方法線程安全嗎?

您在這里通過線程安全意味着什么。 它是一個靜態方法,依次調用以下方法,該方法將為您返回一個新的Pipeline模型實例。 重新調用該方法將返回一個新實例。

override def load(path: String): PipelineModel = {
  val (uid: String, stages: Array[PipelineStage]) = SharedReadWrite.load(className, sc, path)
  val transformers = stages map {
    case stage: Transformer => stage
    case other => throw new RuntimeException(s"PipelineModel.read loaded a stage but found it" +
      s" was not a Transformer.  Bad stage ${other.uid} of type ${other.getClass}")
  }
  new PipelineModel(uid, transformers)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM