-
Notifications
You must be signed in to change notification settings - Fork 3
/
diagMetric_train.m
62 lines (42 loc) · 1.53 KB
/
diagMetric_train.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
%% On View 1 LFW
init_script;
addpath('./diagMetricLearn');
% Load pre-computed Fisher Vectors - MODIFIED FOR CNN-FV
load('./data/fv_cnn_lfw_MultiUpscaledCrop.mat', 'fv');
fv_lfw = fv;
clear fv;
if ~exist('imagePathsLFW', 'var')
load('./data/all_img_lfw_funneled.mat', 'imagePathsLFW');
end
%%
% parameters
params.lambda = 1e-5;
params.rngSeed = 6756;
params.numIter = 1e6;
% Training and validation data
% Training set pairs
disp('Reading in training set - DevTrain');
[ imgIdx1_same, imgIdx2_same ] = ...
readSplitLFW( './data/lists/dv_train_same.txt', imagePathsLFW );
[ imgIdx1_diff, imgIdx2_diff ] = ...
readSplitLFW( './data/lists/dv_train_diff.txt', imagePathsLFW );
trainData = struct;
trainData.feats = fv_lfw;
trainData.posPairs = [ imgIdx1_same ; imgIdx2_same ]; % 2xN
trainData.negPairs = [ imgIdx1_diff ; imgIdx2_diff ];
% Validation set for early stopping
disp('Reading in a validation set - DevTest');
[ imgIdx1_same, imgIdx2_same ] = ...
readSplitLFW( './data/lists/dv_test_same.txt', imagePathsLFW );
[ imgIdx1_diff, imgIdx2_diff ] = ...
readSplitLFW( './data/lists/dv_test_diff.txt', imagePathsLFW );
valData = struct;
valData.valPair1 = [imgIdx1_same, imgIdx1_diff];
valData.valPair2 = [imgIdx2_same, imgIdx2_diff];
valData.valGT = [ ones(1, length(imgIdx1_same)) -ones(1, length(imgIdx1_diff))];
clear fv_lfw imagePathsLFW imgIdx1_same imgIdx2_same imgIdx1_diff imgIdx2_diff;
disp('Training DiagMetric model . . . ');
tic
model = diagTrain(trainData, valData, params);
toc
disp('Done (not saving to disk)');