[英]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.