2016-01-18 4 views
5

Mes jeux de données est MNIST, et la bibliothèque ML est MXNetComment faire un noyau lisse dans Convolution Neural Networks avec cadre MXNet?

J'ai utilisé l'algorithme CNN pour pratiquer ML. Puis j'ai trouvé le tutoriel de référence, page 6 and 7.

smoothly kernel

Je suppose que le noyau par défaut est tout '1' instances dans une matrice (noyau dans MXNet). Comment faire le noyau lisse comme diapositive ci-dessus.


Ce code MXNet avec R.

mx.symbol.Convolution(data=data, kernel=c(5,5), num_filter=20) 
+1

Veuillez considérer inclure les données et tout le code approprié dans votre question pour séparer les liens vers des ressources hors-site qui peuvent se déconnecter sans préavis. –

+0

Qu'essayez-vous d'accomplir? Si vous essayez de filtrer des images en utilisant 'MXNet', vous utilisez peut-être le mauvais outil. Il existe un moyen de spécifier l'initialisation du tableau, mais vous allez changer les poids si vous voulez faire un apprentissage avec backprop. Si vous voulez juste faire un noyau sur une image, regardez les paquets 'spatialfil' ou' imager'. – ultradian

Répondre

1

Comme mentionné par d'autres, MXNet est un cadre pour l'apprentissage en profondeur. Les diapositives que vous avez référencées sont des tâches de traitement d'image qui ont d'autres outils optimisés, OpenCV étant l'une des plus populaires. Néanmoins, vous pouvez également effectuer une convolution simple en utilisant MXNet. En python, il ressemblerait à ceci:

# Replace img with an actual image 
img = np.random.uniform(size=(1, 1, 480, 640)) 
img = mx.nd.array(img) 
w = mx.nd.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]]) 
w.reshape((1, 1, 3, 3)) 
out = mx.nd.Convolution(
    img, w, kernel=(3, 3), num_filter=1, no_bias=True, pad=(1, 1))