BP演算法 別人用C寫的和用Matlab實現的

2021-05-25 15:10:44 字數 1131 閱讀 5857

%匯入資料,之後執行如下**

%輸入3維訓練向量。已經歸一化處理。traindata.txt  。匯入資料

p=traindata(:,:);

p=p';%轉置

%輸出1維期望輸出向量。已經歸一化處理。expectation.txt

t=expectation(:);

t=t';%轉置

%輸入向量的取值範圍[0,1]。記得是4維

threshold=[0 1; 0 1; 0 1;0 1];

%新建bp網路,隱層神經元個數9(根據網路的效能向大或者向小取值調整)2*n+1,n=4

%輸出神經元個數1,

%中間層神經元傳遞函式tansig(s型正切函式)

%輸出層神經元傳遞函式logsig(s型對數函式)

%訓練函式traingdx(梯度下降法學習,且學習速率是自適應的)

net=newff(threshold,[7 1],,'traingdx');

%網路訓練次數

net.trainparam.epochs=1000;

%訓練目標

net.trainparam.goal=0.001;

%開始訓練

net=train(net,p,t);

%匯入test.txt,然後執行如下**

%接著訓練部分。

p_test=test(:,:);

p_test=p_test';

y=sim(net,p_test);

%加上下面的語句,儲存結果到c:還是需要處理的,當然比直接複製好多了

%csvwrite('c:',y)

%z注意儲存結果到自己的工作目錄

%%匯入result.txt,執行下面**

%r=result(:);

%y=result=r

將r匯出到excel中

也可在matlab中進行曲線的模擬,原始碼:

匯入testactual.txt,

和result.txt進行比較

注意轉置

%假設長度為64

z=test(:,4);%實際值

x=1:1:64;

plot(x,y,'b');%**值

hold on

plot(x,z,'r');%實際值

用c 寫銀行家演算法的感想

就銀行家演算法而言,其本身不難,在這個實驗裡我用了陣列結構來表示資源的占有 申請 以及最大需求量。但是對於陣列的操作確實是乙個頭疼的問題,我不可能總是去遍歷陣列進行陣列的加減 賦值 比較大小的運算,為此 我首先想到的是符號過載 期望能夠用 號等進行直接的運算,想法是好的,但是操作起來 讓我相當頭疼。...

我用C 寫的日曆

只要呼叫構造方法就可以啦 using system using system.collections.generic using system.linq using system.text public class calendar 構造方法 年 public calendar int year e...

python是用c寫的嗎 python是用c寫的嗎

python的誕生 1991年,第乙個python編譯器 同時也是直譯器 誕生。它是用c語言實現的,並能夠呼叫c庫 so檔案 從一出生,python已經具有了 類 class 函式 function 異常處理 exception 包括表 list 和詞典 dictionary 在內的核心資料型別,以...