Моят проект е да разпознавам древни монети. Използвам Matlab. Вече имам файл с функции, който съдържа както входове, така и изходи. Обучил съм 3 вида монети с помощта на newff и net беше запазен. За трите вида монети използвах 01, 10 и 11 като цели. Сега искам да използвам тази обучена мрежа за тестване. Имам и пробни снимки. Кодирах така:
load net.mat;
load features.mat;
testInputs = Features';
out = sim(net,testInputs);
[dummy, I]=max(out);
Стойността на I
се използва за проверка на типа монета. Ако I
е 1, тогава въведете 1, ако 2, тогава въведете 2 и ако 3 въведете 3. Прав ли съм? Твърдо кодирах тези 1,2,3 стойности, защото дадох цели като 01, 10 и 11.
if (I == 2)
fprintf('Type1\n');
elseif (I == 1)
fprintf('Type2\n');
elseif (I == 3)
fprintf('Type3\n');
else
fprintf('undefined\n');
end
Въпреки че сега въвеждам 3 вида тестови изображения на монети, той показва или 1, или 2 за стойността I
. Но не и 3. Дори когато използвам същия набор от изображения, които се използват за обучение, той също дава 1 или 2 за стойността I
.
Можете ли да ми помогнете?