-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmlp_test.m
64 lines (50 loc) · 1.68 KB
/
mlp_test.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
clc
clear all
global flogid;
flogid = 1;
filenames = 'textureCR';
% filenames = 'vowels';
% filenames = 'soybean1';
% filenames = 'mushroom1';
% filenames = 'nXOR';
% загрузка обучающего окружения из файла
ds = loadDataSets(filenames);
tic;
printMessage('\nНачало обработки тестовой задачи %s', filenames);
path = strcat('./learnedTasks/', filenames, '_text__log.dat');
% flogid = fopen(char(path), 'w');
if(flogid == -1)
error('Test: Не могу открыть файл %s', flogid);
end
% создание МСП заданной архитектуры
net = mlpCreate([ds.numInputs, 8, 10, ds.numOutputs], ...
{'tansig'; 'tansig'; 'tansig'});
% обучение сети
net.speedLearn = 0.01;
net.numEpoch = 1000;
[net, errors] = mlpTrain(net, ds);
% сохранение обученной сети в файл
path = strcat('./learnedTasks/', filenames, '_mlp');
mlpSave(net, char(path));
% сохранение графика обучения в файл
path = strcat('./learnedTasks/', filenames, '_log');
mlpPlot(char(path), errors, true);
% сохранение лога обучения в файл
path = strcat('./learnedTasks/', filenames, '_errors');
save(char(path), 'errors');
% тестирование сети
printMessage('\n\tТестирование МСП на обучающем множестве');
printMLPEvalLog(net, ds.training);
if(ds.hasTest)
printMessage('\n\tТестирование МСП на тестовом множестве');
printMLPEvalLog(net, ds.test);
end
if(ds.hasValidation)
printMessage('\n\tТестирование МСП на контрольном множестве');
printMLPEvalLog(net, ds.validation);
end
% сохранение лога обучения в файл
path = strcat('./learnedTasks/', filenames, '_errors_matlab_mlp');
% создание и обучение МСП Matlab
mlpMatlabTest(ds, path, ds.numInputs, 8, 10);
printMessage('\nОбработка базы завершена за %8.3f с\n', toc);