0

我試着運行我的下面的代碼來訓練我的貝葉斯網絡。MATLAB中的貝葉斯網絡錯誤

p = [-1:.05:1]; 
t = sin(2*pi*p)+0.1*randn(size(p)); 
net = feedforwardnet(2,'trainbr'); 
net = train(net,p,t); 
a = net(p); 

並且收到如下錯誤;

Default value is not a member of type "nntype.training_fcn". 
Error using nnetParamInfo (line 28) 
FCN does not return an info object. 

Error in feedforwardnet>get_info (line 87) 
    nnetParamInfo('trainFcn','Training 
Function','nntype.training_fcn','trainlm',... 

Error in feedforwardnet (line 39) 
    if isempty(INFO), INFO = get_info; end 

Error in backpropag_no_noise (line 29) 
net1=feedforwardnet(20,'trainbr'); 

我使用了與MATLAB文檔中給出的相同的例子。它有時會使用相同的代碼,並且在大多數情況下都會引發錯誤。我按照文檔中的建議通過了網絡和參數。任何幫助。

+0

什麼是您的Matlab的版本?我檢查你的代碼,它工作正常! – Reflection

+0

我使用版本2017a。是的,如果我將相同的代碼放入在線matlab版本中,它就可以工作。我感到困惑,並且已經持續2天解決了這個問題。 – Mari

+0

我已經聽到人們說v 2017改變了很多,也許這只是新版本中的一個錯誤!嘗試舊版本的腳本,看看它是否有幫助,我沒有2017版檢查,對不起 – Reflection

回答

0

你的代碼在我的Matlab上工作, 嘗試通過下面的代碼單獨定義網絡訓練功能,也許它工作。還將網絡層的神經元數量放在括號中。

net = feedforwardnet([2],'trainbr'); net = train(net,p,t); net.trainFcn='trainbr';

+0

我很抱歉它不起作用,並引發同樣的錯誤。錯誤信息不是解釋性的,仍然試圖弄清楚。 – Mari

+0

這很奇怪!腳本中是否還有其他內容,而不是上面的代碼,它們可能會導致此錯誤。添加「全部清除」功能以清除工作空間,您是否嘗試過其他學習算法,如「traingdm」或「trainlm」? – Reflection