作为一个CNTK学习练习,我想我会修改Logistic回归示例从lr_bs.cntk
,并尝试获得基本的线性回归工作。基本线性回归:训练准则是NaN
取而代之的是在物流例如:
# parameters to learn
b = Parameter (LDim, 1) # bias
w = Parameter (LDim, SDim) # weights
# operations
p = Sigmoid (w * features + b)
lr = Logistic (labels, p)
err = SquareError (labels, p)
# root nodes
featureNodes = (features)
labelNodes = (labels)
criterionNodes = (lr)
evaluationNodes = (err)
outputNodes = (p)
...我只是改变了代码这样:
# operations
p = (w * features + b)
lr = SquareError (labels, p)
err = SquareError (labels, p)
我得到这个对我创建了一个合成数据集工作。但是,我尝试在我从Wine Quality数据集创建的文件上运行它。我无法实现它的工作,并且我对如何前进感到不知所措。
火车命令失败,有如下诊断:
EXCEPTION occurred: The training criterion is not a number (NAN).
我解释这意味着lr
不产生有效的数字。我只是不明白如何SquareError
可能会失败,以及如何解决这个问题。
的信息,这里是怎样的数据集,准备之后,是这样的:
|features 7.400 0.700 0.000 1.900 |labels 5.000
|features 7.800 0.880 0.000 2.600 |labels 5.000
|features 7.800 0.760 0.040 2.300 |labels 5.000
|features 11.200 0.280 0.560 1.900 |labels 6.000
|features 7.400 0.700 0.000 1.900 |labels 5.000
我看不到任何公然问题的数据问题。我使用CNTKTextFormatReader
来读取数据,也许问题是数据读取部分,但没有调试我不能确定。
任何关于如何解决这个问题的建议都会非常感激。
谢谢 - 应该考虑一下。我没有得到方差是如何产生“不是数字”的,但是选择得不好的学习速度确实会造成问题:)降低速度确实解决了这个问题。 – Mathias