我一直在用CNTK迭代地训练一些模型,在每次迭代后用新的集合替换数据,然后运行另一轮训练。 .DNN文件在CNTK本身(运行Train命令)中正常加载,以及使用Microsoft.Research.CNTK.CpuEval-mkl nuget包从C#使用CPU评估。
对模型的评估现在花了足够长的时间,我决定切换到C#,CNTK.GPU的GPU库。但是,当我尝试在我的代码中加载模型时,我得到以下异常:
Prediction output operand's shape [7 x 1] is incompatible with label operand's shap [7] for the CrossEntropyWithSoftmax operation
at CNTK.Function.LoadModel(String modelFile)
知道如何加载模型吗?如果我必须更改CNTK文件以更新拓扑结构,我可以这样做,但我不想抛弃我使用当前模型所取得的进展。
编辑:这是我用来构建网络的CNTK文件的一部分。我基本上采用了一些示例代码并将其更改为符合我的需要。
SimpleNetworkBuilder = {
layerSizes=84:5000*5:7
trainingCriterion="CrossEntropyWithSoftmax"
evalCriterion="ErrorPrediction"
layerTypes="RectifiedLinear"
initValueScale=1.0
uniformInit=true
needPrior=true
addDropoutNodes=true
}
答案 0 :(得分:1)
您使用的是哪种CNTK版本?这个问题应该在最新的Beta12中修复。当您安装Nuget软件包时,请明确选择Beta 12版本。(Nuget软件包管理器不会将Beta12显示为最新版本,因为它使用字符串比较进行版本检查。)请尝试使用Beta 12.请告知我们是否你还有问题。