forked from amolchanov86/matcaffe_tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
caffe_layer_data_def.m
104 lines (92 loc) · 2.15 KB
/
caffe_layer_data_def.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
function [ layer_str ] = caffe_layer_data_def( backend, train_flag, varargin )
%% Description:
% default initialization of the Data layer
% [ layer_str ] = caffe_layer_data_def( backend, train_flag, [include_transf] )
% --- INPUT:
% backend = backend used:
% - 'lmdb'
% - 'hdf5'
% train_flag = training or validation:
% 0 = validation
% 1 = training
% other = include in both
% --- INPUT OPTIONAL:
% include_transf = should we include mean file ?
% --- OUTPUT:
% layer_str = structure describing a layer
%
%% Parameters
batch_size_def = 128;
%% Execution
var_num = 1;
if length(varargin) > var_num - 1
include_transf = varargin{var_num};
else
include_transf = 0;
end
layer_str.name = 'data';
if strcmp('hdf5', backend)
layer_str.type = 'HDF5Data';
end
if strcmp('lmdb', backend)
layer_str.type = 'Data';
end
layer_str.top{1} = 'data';
layer_str.top{2} = 'label';
switch train_flag
case 0
layer_str.include.phase = 'TEST';
train_str = 'val';
case 1
layer_str.include.phase = 'TRAIN';
train_str = 'train';
end
if include_transf
layer_str.transform_param.mirror = 'false';
layer_str.transform_param.mean_file = 'data/mean.binaryproto';
end
if strcmp('hdf5', backend)
layer_str.hdf5_data_param.source = sprintf('data_%s.txt', train_str);
layer_str.hdf5_data_param.batch_size = batch_size_def;
end
if strcmp('lmdb', backend)
layer_str.data_param.source = sprintf('data/%s_lmdb', train_str);
layer_str.data_param.batch_size = batch_size_def;
layer_str.data_param.backend = 'LMDB';
end
% layer {
% name: "data"
% type: "HDF5Data"
% top: "data"
% top: "label"
% include {
% phase: TRAIN
% }
% # transform_param {
% # mirror: false
% # mean_file: "data/mean.binaryproto"
% #}
% hdf5_data_param {
% source: "data_train.txt"
% batch_size: 256
% }
% }
% layer {
% name: "data"
% type: "Data"
% top: "data"
% top: "label"
% include {
% phase: TRAIN
% }
% transform_param {
% mirror: false
% mean_file: "data/mean.binaryproto"
% }
% data_param {
% source: "data/train_lmdb"
% batch_size: 20
% backend: LMDB
% }
% }
end