你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
EvalDLL 评估概述
EvalDLL 库提供用于评估以 CNTK model-v1 格式保存的预训练CNTK模型的方法。 Windows和 Linux) 和 C# (仅在Windows) 上提供 C++ (。
评估不同的数据类型和层
目前,Eval 库支持输入和输出的向量。 这意味着输入向量必须与模型中的输入节点匹配, (特征) 。 某些模型使用图像 ((例如 CIFAR-10) )进行训练,但是,这些图像先向量化,然后馈送到网络中。 例如,CIFAR-10 数据集由 32 像素) 或 RGB 值 (32 像素的小图像组成。 虽然每个坐标是一个三维坐标, (宽度、高度、颜色) ,但数据将矢量化为一维向量。 因此,请务必在评估之前将原始数据转换为矢量格式。 应以与向网络馈送训练时相同的方式完成此转换。
有关详细信息,请参阅“ 评估图像转换 ”页,尤其是在处理图像时。
虽然已训练的模型具有一组特定的输出节点,但有时需要在评估 (期间获取其他节点的值,例如隐藏层) 。 可以使用编程接口执行此操作,有关详细信息,请参阅“ 评估隐藏层 ”页。
当前限制
- 单线程评估。 CNTK评估 EvalDll 库,并按扩展扩展托管 EvalWrapper 库,是单线程和单一重新条目。 不支持单个模型实例的并发评估。 但是,可以加载模型的多个实例,并使用单个线程评估每个模型。 这样,就可以并行评估多个模型,但每个模型都有一个线程。
- 任何将预生成的评估库 (
Cntk.Eval
和Cntk.Eval.Wrapper
DLL 链接到 Windows 中的程序,以及libCntk.Eval
CNTK二进制包的 Linux) ,都应使用与用于生成预生成的库相同的编译器版本。