Резюме: Я пытаюсь сделать классификацию некоторых изображений в зависимости от углов между частями тела.Как установить выходной размер в методе Matlab newff
Я предполагаю, что человеческое тело состоит из 10 частей (в виде прямоугольников) и находит центр каждой части и вычисляет угол каждой части по отношению к торсу. И у меня есть три категории действий: Handwave-Walking-Running. Моя цель - найти, какие тестовые изображения попадают в категорию действий.
Факты: TrainSet: 1057x10 набор функций, 1057 обозначает номер изображения. TestSet: 821x10
Я хочу, чтобы мой вывод был матрицей 3x1, каждая строка показывала процент классификации для категории действия. row1: Handwave row2: Прогулки row3: Бег
Код:
actionCat='H';
[train_data_hw train_label_hw] = tugrul_traindata(TrainData,actionCat);
[test_data_hw test_label_hw] = tugrul_testdata(TestData,actionCat);
actionCat='W';
[train_data_w train_label_w] = tugrul_traindata(TrainData,actionCat);
[test_data_w test_label_w] = tugrul_testdata(TestData,actionCat);
actionCat='R';
[train_data_r train_label_r] = tugrul_traindata(TrainData,actionCat);
[test_data_r test_label_r] = tugrul_testdata(TestData,actionCat);
Train=[train_data_hw;train_data_w;train_data_r];
Test=[test_data_hw;test_data_w;test_data_r];
Target=eye(3,1);
net=newff(minmax(Train),[10 3],{'logsig' 'logsig'},'trainscg');
net.trainParam.perf='sse';
net.trainParam.epochs=50;
net.trainParam.goal=1e-5;
net=train(net,Train);
trainSize=size(Train,1);
testSize=size(Test,1);
if(trainSize > testSize)
pend=-1*ones(trainSize-testSize,size(Test,2));
Test=[Test;pend];
end
x=sim(net,Test);
Вопрос: Я использую Matlab newff method.But мой выход всегда Nx10 Matrice не 3x1 , Мой набор ввода должен быть сгруппирован как 3 класса, но они сгруппированы в 10 классов.
Благодаря
спасибо .. Я по-прежнему пересматриваю ваш код. Каждый раз, когда я запускаю, я получаю разные результаты, вероятно, из-за случайных начальных значений пикапа. Есть ли способ стабилизировать выход? Еще раз спасибо – tguclu
Поскольку мы используем поиск с градиентным спусками, он всегда будет страдать от локальных минимумов, и результат будет сильно зависеть от начальных значений. Чтобы получить более точную оценку производительности, вы можете посмотреть другие методы тестирования, такие как n-кратная перекрестная проверка и самонастройка (помните, что в моем примере все значения просто случайны) – Amro
Я изменил случайные значения с помощью собственных тестирования и подготовки данных. Последовательные прогоны сильно различаются i.e:% от 80 до% 30 в точности. Но тестирование тех же данных по результатам SVM не приводит к большим различиям в последовательных прогонах. – tguclu