Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Scilab by Hubert ( 15 years ago )
// Kod eksperymentu 2
funcprot(0);
exec('mlp.sce', -1);
funcprot(1);
architecture = [13 26 1];
betaParam = 0.6;
[trainingInput, trainingOutput] = readDataFromCSVFile('housing.data')
//trainingInput=trainingInput(1:10,1:$);
//trainingOutput=trainingOutput(1:10);
trainingOutput=trainingOutput/100.0;
trainingInput(1:$,1)=trainingInput(1:$,1)/max(trainingInput(1:$,1));
trainingInput(1:$,2)=trainingInput(1:$,2)/max(trainingInput(1:$,2));
trainingInput(1:$,3)=trainingInput(1:$,3)/max(trainingInput(1:$,3));
trainingInput(1:$,4)=trainingInput(1:$,4)/max(trainingInput(1:$,4));
trainingInput(1:$,5)=trainingInput(1:$,5)/max(trainingInput(1:$,5));
trainingInput(1:$,6)=trainingInput(1:$,6)/max(trainingInput(1:$,6));
trainingInput(1:$,7)=trainingInput(1:$,7)/max(trainingInput(1:$,7));
trainingInput(1:$,8)=trainingInput(1:$,8)/max(trainingInput(1:$,8));
trainingInput(1:$,9)=trainingInput(1:$,9)/max(trainingInput(1:$,9));
trainingInput(1:$,10)=trainingInput(1:$,10)/max(trainingInput(1:$,10));
trainingInput(1:$,11)=trainingInput(1:$,11)/max(trainingInput(1:$,11));
trainingInput(1:$,12)=trainingInput(1:$,12)/max(trainingInput(1:$,12));
trainingInput(1:$,13)=trainingInput(1:$,13)/max(trainingInput(1:$,13));
epochsNo = 5000;
iters = 3;
learningCoeffs = [10 5.6];
for learningCoefficient = learningCoeffs
clf();
xtitle(sprintf('coeff. = %f' ,learningCoefficient), 't', 'SSE');
for iter = 1:iters
W = createRandomizedWeights(architecture);
SSElog = [];
// Proces uczenia sieci w kolejnych epokach
for epochNo = 1:epochsNo
for exampleNo = 1:size(trainingInput, 1)
[X, D] = getInputAndOutputVector(...
trainingInput, trainingOutput, exampleNo);
// D=D/100.0;
gradients = calculateGradients(W, X, D);
// W(,1) = W(,1) - learningCoefficient*gradients;
for i = 1:length(W)
W(i) = W(i) - learningCoefficient*gradients(i);
end
end
SSE = calculateSSE(W, trainingInput, trainingOutput);
SSElog(epochNo) = SSE;
//if SSE < 0.01 then
// break;
//end
end
// przetestuj siec -- wypisz wartosci zwracane dla kazdego
// z wektorow ze zbioru uczacego i porownaj z docelowymi
mprintf('\nTraining set examples results:\n');
for exampleNo = 1:size(trainingInput, 1)
[X, D] = getInputAndOutputVector(...
trainingInput, trainingOutput, exampleNo);
[XOut, U1, V1, U2, Y] = runNetwork(W, X);
if size(X, 1) ~= 13 or size(D, 1) ~= 1
error('Support for non-default input and output ' + ...
'is not implemented');
end
mprintf('X= [%f %f %f %f %f %f %f %f %f %f %f %f %f]^T, D=%f, Y=%f\n', ...
X(1, 1), X(2, 1), X(3,1), X(4,1), X(5,1), X(6,1), X(7,1), ...
X(8, 1), X(9,1), X(10,1), X(11,1), X(12,1), X(13,1), D, Y);
end
plot(SSElog);
end
mprintf('Zadanie wykonane dla parametru %f\n', learningCoefficient);
mprintf('Wcisnij enter, aby wykonac test dla kolejnego parametru\n');
halt();
end
mprintf('To koniec\n');
Revise this Paste
Parent: 32857