gpt4 book ai didi

algorithm - PredictionIO - 一个引擎和多个算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:46 25 4
gpt4 key购买 nike

我受困于一种引擎和多种算法,需要进一步的帮助。

我有一个引擎和两个算法,我们称之为 AL1 和 AL2。在具有 2 个算法 scala 文件的 src/main/scala 中,名称为 AL1Algorithm.scala 和 AL2Algorithm.scala 每个算法都有自己的参数和模型(AL1AlgorithmParams 和 AL1Model 用于 AL1,AL2AlgorithmParams 和 AL2Model 用于 AL2)。因此有 2 个训练函数和 2 个预测函数。

我可以通过调用 pio train 来训练 2 个算法。当我调用 send_query 进行测试时,程序总是返回我放在 engine.json 文件顶部的算法的结果

例如,如果我将 AL1Algorithm 放在顶部,send_query 将运行 AL1Algorithm

"algorithms": [
{
"name": "AL1Algorithm",
"params": {
"n": 100
}
},
{
"name": "AL2Algorithm",
"params": {
"n": 100
}
}

如果我将 AL2Algorithm 放在顶部,send_query 将运行 AL2Algorithm'

"algorithms": [
{
"name": "AL2Algorithm",
"params": {
"n": 100
}
},
{
"name": "AL1Algorithm",
"params": {
"n": 100
}
}

我的问题是,我可以为一个send_query调用2个算法吗,如何区分应该在send_query而不是engine.json中调用哪个算法。这里有一些奇怪的地方,我认为我的配置有问题。Serving.scala 会同时产生两种算法的结果吗?我可以在服务中拆分每个算法的结果吗?

非常感谢

最佳答案

您还需要修改 Serving.scala 中的 serve() 函数。 serve() 函数有 2 个参数。见下文

def serve(query: Query,
predictedResults: Seq[PredictedResult]): PredictedResult

查询发送给两种算法,两种算法返回的PredictedResult作为Seq[PredictedResult]传递给serve()函数>。 Seq[] 顺序与 engine.json 中定义的算法顺序相同。您需要修改它以利用算法输出的所有 PredictedResult。一些模板示例默认只取第一个结果(predictedResults.head)

另请参阅 this doc 中的“第 4 步。修改服务以组合多个算法的输出”例如。

关于algorithm - PredictionIO - 一个引擎和多个算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com