首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GoLang中使用受过训练的Scikit学习Python模型?

如何在GoLang中使用受过训练的Scikit学习Python模型?
EN

Stack Overflow用户
提问于 2022-03-09 02:38:37
回答 2查看 977关注 0票数 2

我在Python环境中训练了一个Scikit学习模型,我需要使用它在GoLang中进行推理。请您帮助我如何导出/保存我的模型在python中,然后在GoLang中使用它。

我找到了一种神经网络模型的解决方案,可以将Tensorflow模型保存为ONNX格式,并使用GoLang中的Onnx加载它。但这是特定于神经网络模型。但我想不出科学学习模型的意义。

EN

回答 2

Stack Overflow用户

发布于 2022-03-09 07:41:22

找到了以下解决方案。

Solution1:

我们应该以PMML格式导出python模型,然后使用GoLang库导入GoScore

下面是一个使用GoLang加载PMML文件的GoScore代码片段

代码语言:javascript
复制
modelXml, err := ioutil.ReadFile("titanic_rf.pmml")
if (err != nil) {
  panic(err)    
}
var model goscore.RandomForest 
xml.Unmarshal([]byte(modelXml), &model)

features := map[string]interface{}{
  "Sex": "male",
  "Parch": 0,
  "Age": 30,
  "Fare": 9.6875,
  "Pclass": 2,
  "SibSp": 0,
  "Embarked": "Q",
}

score, _ := model.Score(features, "0") // scores 0.486
score, _ := model.Score(features, "1") // scores 0.514
score, _ := model.LabelScores(features) // map[0:243 1:257]

找到了引用这篇媒体文章的解决方案。(虽然其R模型适用于GoLang,但仍然适用)

Solution2

斯克伦-波特是python中的库,可以将模型移植到各种语言中。不幸的是,目前它并不支持所有的Go模型。

票数 1
EN

Stack Overflow用户

发布于 2022-03-09 02:45:13

您可以开发REST json服务,以公开您的scikit学习模型,并与go客户端进行通信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71403705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档