-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcnntest.m~
121 lines (118 loc) · 3.95 KB
/
cnntest.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
function [er,er2, er3,partweight] = cnntest(net, x, y,i,xishu,mode)
% feedforward
net = cnnff(net, x);
if mode ~=0
partweight = importdata(['/home/guqian/jarrateNew/' num2str(i) 'jarrate30.txt']);
end;
%partweightset = repmat(partweight,1,xishu);
%if mode ==3
%doubtable = importdata(['/home/guqian/Static/num_test' num2str(i) '.txt']);
%else
%doubtable = importdata(['/home/guqian/Static/num_train' num2str(i) '.txt']);
%end;
[~, h] = max(net.o);
[~, a] = max(y);
%h =h(doubtable);
%a = a(doubtable);
bad = find(h ~= a);
indexbusy = find(a == 1);
badbusy = find(h(indexbusy) ~= a(indexbusy));
er2 = numel(badbusy)/numel(indexbusy);
indexunbusy = find(a == 2);
badunbusy = find(h(indexunbusy) ~= a(indexunbusy));
er3 = numel(badunbusy)/numel(indexunbusy);
er = numel(bad) / size(a, 2);
disp([num2str(er) ' ' num2str(numel(indexbusy)) ':' num2str(er2) ' ' num2str(numel(indexunbusy)) ':' num2str(er3)]);
if mode == 2
partweightnew = repmat(partweight,1,7)
[~, h] = max(0.7*net.o+0.3*partweightnew);
[~, a] = max(y);
bad = find(h ~= a);
indexbusy = find(a == 1);
badbusy = find(h(indexbusy) ~= a(indexbusy));
er2 = numel(badbusy)/numel(indexbusy);
indexunbusy = find(a == 2);
badunbusy = find(h(indexunbusy) ~= a(indexunbusy));
er3 = numel(badunbusy)/numel(indexunbusy);
er = numel(bad) / size(y, 2);
disp([num2str(er) ' ' num2str(numel(indexbusy)) ':' num2str(er2) ' ' num2str(numel(indexunbusy)) ':' num2str(er3)]);
end;
if mode == 1
fid =fopen(['/home/guqian/jarrateNew/' num2str(i) 'jarrate30.txt'],'w');
badtotal = 0;
for k = 1:72
%H{k} = h(:,k:72:k+19*72);
A = a(:,k:72:k+19*72);
output = net.o(:,k:72:k+19*72);
%b = partweight(k)
%partweightnew{k} = repmat(partweight(k),1,72)
badbest =20;
j =0;
for i = 0:100
b (1,1) = i*0.01;
b (2,1) = 1-i*0.01;
partweightnew = repmat(b,1,20);
[~,H]=max(0.7*output+0.3*partweightnew);
bad = find(H ~= A);
indexbusy = find(A == 1);
badbusy = find(H(indexbusy) ~= A(indexbusy));
er1 = numel(badbusy)/numel(indexbusy);
if numel(bad) <= badbest
badbest =numel(bad);
j = i;
end;
if numel(bad) == 0
break;
end;
end;
badtotal = badtotal + badbest;
partweight(1,k)=j*0.01;
partweight(2,k)=1 -j*0.01;
end;
for k = 1 : 72
fprintf(fid,'%f ',partweight(1,k));
end;
fprintf(fid,'\n');
for k =1 : 72
fprintf(fid,'%f ',partweight(2,k));
end;
fprintf(fid,'\n');
end;
%[~, h] = max(partweight);
%[~, a] = max(y);
%bad = find(h ~= a);
%er2 = numel(bad) / size(y, 2);
%disp(er2);
%[~, h] = max(0.7*net.o+0.3*partweight);
%[~, a] = max(y);
%bad = find(h ~= a);
%er3 = numel(bad) / size(y, 2);
%disp(er3);
%bad1 = find((h==1) ~
%3= (a ==1));
%if(~isempty(a == 1))
% er1 = numel(bad1) /max(size(a(a==1),2),size(h(h==1),2));
%else
% er1 = 0
%end;
%bad2 = find((h==2) ~= (a ==2));
%if(~isempty(a == 2))
% er2 = numel(bad2) /max(size(a(a==2),2),size(h(h==2),2));
%else
% er2 = 0;
%end;
%bad3 = find((h==3) ~= (a ==3));
%if(~isempty(a == 3))
% er3 = numel(bad3) /max(size(a(a==3),2),size(h(h==3),2));
%else
% er3 = 0;
%end;
%[~, h] = max(partweight);
%bad = find(h ~= a);
%er2 = numel(bad) / size(y, 2);
%disp(er2)
%[~, h] = max(0.3*partweight+0.7*net.o);
%bad = find(h ~= a);
%er3 = numel(bad) / size(y, 2);
%disp(er3)
end