Mon projet consiste à reconnaître les pièces anciennes. J'utilise Matlab. J'ai déjà un fichier de caractéristiques qui contient à la fois des entrées et des sorties. J'ai formé 3 types de pièces en utilisant newff et net ont été enregistrés. Pour les trois types de pièces, j'ai utilisé 01, 10 et 11 comme cibles. Maintenant, je veux utiliser ce filet entraîné pour les tests. J'ai aussi des images de test. Je codé comme ceci:Matlab - Utiliser un réseau formé pour les tests
load net.mat;
load features.mat;
testInputs = Features';
out = sim(net,testInputs);
[dummy, I]=max(out);
Valeur de I
utilise pour vérifier le type de pièce. Si I
est 1 alors tapez 1, si 2 puis tapez 2 et si 3 tapez 3. Ai-je raison? Je ces pré-programmée 1,2,3 valeurs parce que j'ai donné des objectifs 01, 10 et 11.
if (I == 2)
fprintf('Type1\n');
elseif (I == 1)
fprintf('Type2\n');
elseif (I == 3)
fprintf('Type3\n');
else
fprintf('undefined\n');
end
Bien que maintenant je entrée 3 types d'images de pièces de test, il affiche soit 1 ou 2 pour la valeur I
. Mais pas 3. Même lorsque j'utilise le même ensemble d'images qui sont utilisées pour l'entraînement, il donne aussi 1 ou 2 pour la valeur I
.
Pouvez-vous s'il vous plaît m'aider?
Regardez la matrice de poids (j'ai oublié comment y accéder) et assurez-vous que votre filet ne s'est pas installé sur un minimum local avec zéro comme poids pour le troisième. – jonsca
Je suis nouveau sur matlab. Peut-on m'expliquer un peu plus? Je ne pouvais pas comprendre ce que vous avez dit ci-dessus. Quand j'entraîne mon jeu de données, pour 3 types de pièces, j'ai donné [0,1], [1,0] et [1,1] comme cibles. Je ne peux pas donner comme ça? Après la formation quand je compare les données entraînées avec mes images de test que j'ai utilisées, out = sim (net, testInputs); [dummy, I] = max (sortie); et alors si (I == 2) fprintf ('Type1 \ n'); elseif (I == 1) fprintf ('Type2 \ n'); elseif (I == 3) fprintf ('Type3 \ n'); sinon fprintf ('non défini \ n'); fin. Est-ce incorrect? Je renvoie toujours 1 ou 2. –
La matrice de poids contient les «forces» de la connexion entre les unités individuelles. Si vous n'êtes pas familier avec cela, vous devriez lire la documentation de Matlab. Vous pouvez ensuite voir dans quelle mesure l'entrée de la troisième unité influence le résultat. – jonsca