function [] = compute_features(config, file_info, learn_hmp)
%% Multipath-HMP Features
% Each HMP path is computed on a batch of data,
% and if dictionaries don't exist they will be computed.
% Basic color and geometry features are a prerequisite.

config.learn_hmp = learn_hmp;
architectures = unique(...
    cellfun(@(x) x{1}, [config.path_sets{:}], 'UniformOutput', false));
for i = 1:length(architectures)
    % Load HMP Params
    hmp_name = architectures{i};
    
    % construct the make_hmp_params function handle
    make_hmp_params = str2func(['make_' hmp_name '_params']);
    
    % Append split_name to hmp_name so each training split 
    % will have its own set of dictionaries and features.
    if isfield(config, 'split_name')
        hmp_name = fullfile(config.split_name, hmp_name);
    end

    % Compute HMP dictionary and features
    compute_hmp_features(config, file_info, hmp_name, make_hmp_params);
end

end
