4

我们已经使用 CNTK 训练了一个模型。我们正在构建一个服务,该服务将加载此模型并响应对句子进行分类的请求。关于性能,最好的 API 是什么?我们更愿意在https://github.com/Microsoft/CNTK/tree/master/Examples/Evaluation/CSEvalClient中构建一个 C# 服务,但或者我们正在考虑构建一个将在 python 中加载模型的 Python 服务。

您对其中一种方法有什么建议吗?(关于哪个 API 更快、更积极地维护或您能想到的其他参数)。下一步是建立一个测量两个 API 调用性能的实验,但想知道这里是否有一些先验知识可以帮助我们做出决定。

谢谢

4

2 回答 2

4

这两个 API 都得到了很好的开发/维护。对于文本数据,我会使用 C# API。

在 C# 中,主要关注点是快速和简单的评估,并且对于文本加载数据很简单。

Python API 有利于模型的开发/训练,目前还没有太多关注评估。此外,由于大量的包以奇异格式加载数据,因此在 Python 中比 C# 更容易。

于 2017-01-12T02:31:52.607 回答
2

基于 CNTKLibrary 的新 C# Eval API 很快就会推出(第一个测试版可能在下周)。此 API 在评估方面与 C++ 和 Python API 具有相同的功能。

该API支持使用多个线程并行服务多个评估请求,更好的是,相同加载模型的模型参数在这些线程之间共享,这将显着减少服务环境中的内存使用。

我们还有一个关于如何在 ASP.Net 环境中使用 Eval API的教程。它仍然指的是 EvalDLL 评估,但也适用于新的 C# API。该文档将在新的 C# API 发布后更新。

于 2017-01-13T06:42:49.817 回答