2017-01-24 3 views
1

I extrait les caractéristiques d'une image avec ResNet de la couche 'res5c', résultant d'une matrice de forme numpy (2048, 14, 14)Comment remodeler la couche res5c de ResNet (3D vers 2D)?

j'ai de la difficulté de manipuler ces dimensions. Je comprends qu'il y a 14 * 14 fonctionnalités de taille 2048. Je voudrais parcourir pour accéder à chaque fonctionnalité à la fois.

Par conséquent, comment je peux remodeler cela à un tableau de (14 * 14, 2048) sans erreurs, puis itérer facilement dessus avec une boucle for?

+2

Bienvenue sur Stack Overflow! Vous pouvez prendre le [tour] (http://stackoverflow.com/tour) en premier et apprendre [Comment poser une bonne question] (http://stackoverflow.com/help/how-to-ask) et créer un [ Exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve). Ce sera plus facile pour nous de vous aider. S'il vous plaît nous montrer ce que vous avez essayé jusqu'à présent. – MrLeeh

Répondre

0

Vous pouvez lire les caractéristiques après net.forward():

feat = net.blobs['res5c'].data.cop() # copy to be on the safe side. 

Comme vous le décrivez, feat est un np.array avec shape = (2048, 14, 14).
Vous pouvez reshape il:

feat.reshape((2048,-1)) # fix the first dimension to 2048, -1 set the number of features to match that of `feat`. 

Maintenant, vous pouvez itérer sur les caractéristiques:

for fi in xrange(feat.shape[1]): 
    f = feat[:,fi] # get the fi-th feature 
    # do somethinf to the feature f 
+0

Cela fonctionne très bien. Si je comprends bien, cela fonctionnerait-il pour obtenir '(14, 14, 2048)': 'x = x.reshape ((2048, -1))' alors 'x = np.swapaxes (x, 0, 1) ' ' x = x.reshape ((14,14,2048)) ' – Mickey

+0

@Mickey regarde [' numpy.transpose'] (https://docs.scipy.org/doc/numpy/reference/generated /numpy.transpose.html). Mais veux-tu faire ça? qu'est-ce qui ne va pas avec 'feat [:, fi]'? Essayez-vous d'exporter des données vers Matlab? – Shai

+0

Je travaille avec python mais c'est idiot, je veux juste utiliser une fonction qui accepte comme tenseur d'entrée de formes (W, H, Feature). Ma faible connaissance du remodelage me cause des problèmes :-) Je vais essayer de le faire avec la transposition – Mickey