Как передать SURF-функции и метки при обучении нейронной сети для классификации изображений? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь обучить нейронную сеть с прямой связью в MATLAB, которая использует вектор признаков SURF и метки классов в качестве входных данных, как описано в этом вопросе, заданном ранее: Ввод функции SURF в нейронную сеть в MATLAB .

Я использовал подход «набора функций», но получаю ошибку: «При входе и цели у меня различное количество выборок» при попытке обучить модель.

У меня 71 класс изображенийкаждый из которых содержит 176 тренировочных образов (всего 12496 изображений).Используя извлечение признаков SURF, я создаю размер массива [500 x 12496].У меня также есть вектор размера меток обучения [12496 x 1], соответствующий классу каждого изображения в данных обучения.

Как мне преобразовать эти векторы, чтобы я мог тренировать свою сеть илинеправильно понял проблему?

Код, который я реализую, выглядит следующим образом:

feature_vector_train = encode(SURF_bag, trainingSets);
feature_vector_train_T = feature_vector_train'; % Attempted using transpose

feature_vector_validation = encode(SURF_bag, validationSets);
feature_vector_validation_T = feature_vector_validation'; % Attempted using transpose

%% Create class label vectors

classes_count = size(trainingSets,2);
class_images_count_training = trainingSets.Count;
class_images_count_validation = validationSets.Count;

labels_vector_train = [];
labels_vector_validation = [];

for i = 1:classes_count
    for j = 1:class_images_count_training
        labels_vector_train = [labels_vector_train;i];
    end
    for k = 1:class_images_count_validation
        labels_vector_validation = [labels_vector_validation;i];
    end
end

%% Feed feature vector into classifier (SVM) and test performance on validation set

SURF_MLP_classifier = feedforwardnet();
SURF_MLP_classifier.trainParam.epochs=5000;
SURF_MLP_classifier = configure(SURF_MLP_classifier,feature_vector_train_T,labels_vector_train);

%% ERROR LINE
SURF_MLP_classifier = train(SURF_MLP_classifier,feature_vector_train_T,labels_vector_train);
...