Je veux tester la performance de chaque couche convolutive de mon architecture de réseau neuronal convolutif (CNN) en utilisant le SVM. J'utilise la boîte à outils MatConvNet de Matlab.
Les couches sont comme ça : Conv1 Relu1 Pool1 (3x3, 32 caractéristiques) -> Conv2 Relu2 Pool2 (3x3, 64 caractéristiques) -> Conv3 Relu3 Pool3 (3x3, 128 caractéristiques) ->Conv4 Relu4 (1x1, 256 caractéristiques) -> Conv5 (1x1, 4 caractéristiques)-> Softwamxloss
Après l'entraînement, j'ai supprimé la couche de perte
net.layers=net.layers(1 : end - 1);
J'ai le réseau qui ressemble à ça
Je peux extraire les caractéristiques comme ça :
feats = vl_simplenn(net, im) ;
Feautre_L1(fea,:) = squeeze(feats(end).x);
De même, j'enlève 2 couches supplémentaires et j'extrais 256 caractéristiques de Conv4. Mais quand je passe à Conv3, la caractéristique de sortie est de 7x7x128. Je veux savoir comment je peux utiliser ces caractéristiques.
i) Faire un seul vecteur ii) Faire la moyenne des valeurs en profondeur ?