作爲一個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