This repository has been archived by the owner on Feb 2, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
train_case.m
43 lines (39 loc) · 1.66 KB
/
train_case.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
function [net, fisher] = train_case(trn, val, tst, par, discover_via_pcd, trainParam, tst_equal_val, doCrossVal)
%function [net, fisher] = train_case(trn, val, tst, par, discover_via_pcd, trainParam, tst_equal_val, doCrossVal)
%Faz o treino de um caso especifico.
%trn, val, tst sao dos datasets. par e a estrutura de treino especifica
%para este caso, retornada pela funcao get_parameters existento no
%diretorio de analise. discover_via_pcd, se true, vai fazer o sistema
%realizar uma analise por PCD, p/ saber qual o melhor numero de nos na
%camada escondida. trainParam e a estrutura com os parametros de
%treinamento, de tal forma que net.trainParam = trainParam seja valido.
%tst_equal_val, se true, diz a funcao que o conjunto de teste e identico ao
%de validacao. Se discover_via_pcd = false, um fisher sera rodado, e, em
%ambos os casos (fisher, net), a validacao cruzada sera feita
%(se , doCrossVal = true). do Contrario, apaenas uma rede sera treinada.
%
if nargin ~= 8,
error('Numero invalido de argumentos na train_all_cases');
end
fprintf('Fazendo %s\n', par.desc);
if discover_via_pcd,
%Quero saber qtos nos usar na camada escondida
numNodes = 1;
fisher = [];
else
%Fazendo Fisher.
numNodes = 0;
fisher = fullTrain(trn, val, tst, trainParam, numNodes, par, tst_equal_val, doCrossVal);
fisher.desc = par.desc;
fisher.id = par.id;
numNodes = par.hidden_nodes; %P/ o treino neural.
end
%Treino neural.
if numNodes > 0,
net = fullTrain(trn, val, tst, trainParam, numNodes, par, tst_equal_val, doCrossVal);
net.desc = par.desc;
net.id = par.id;
else
disp('Nao vao realizar treino neural!');
net = [];
end