-
Notifications
You must be signed in to change notification settings - Fork 5
/
runall_compress_dynammo.m
29 lines (28 loc) · 1.15 KB
/
runall_compress_dynammo.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
function [error_dynammo_all, ratio_dynammo_all, h_dynammo_all] = runall_compress_dynammo(X, varargin)
% try many different hidden dimensions and get the compression ratio and
% errors using dynammo compression with dynamic programming.
% the resulting ratio is sorted descently, and the error is drawn from
% skyline shape.
% see compress_dynammo.m for additional arguments
% Optional Args:
% 'Hidden': candidate of hidden dimensions
error_dynammo_all = [];
ratio_dynammo_all = [];
h_dynammo_all = [];
a = find(strcmp('Hidden', varargin), 1);
if (isempty(a))
cands = [1 : 4, 5:5:size(X, 1)];
else
cands = varargin{a+1};
end
for HIDDEN = cands
[error, ratio] = compress_dynammo(X, 'Hidden', HIDDEN, varargin{:});
apsize = length(error);
error_dynammo_all = [error_dynammo_all, error];
ratio_dynammo_all = [ratio_dynammo_all, ratio];
h_dynammo_all = [h_dynammo_all, repmat(HIDDEN, 1, apsize)];
fprintf('Hidden = %d, error = %d, ratio = %d\n', HIDDEN, error(1), ratio(1));
end
[ratio_dynammo_all, tmpIdx] = sort(ratio_dynammo_all, 'descend');
error_dynammo_all = cummin(error_dynammo_all(tmpIdx)); % get the skyline plot
h_dynammo_all = h_dynammo_all(tmpIdx);