2016-10-12 5 views
0

J'utilise actuellement tensorflow pour créer un réseau de neurones, qui reproduit la fonction de création d'une sortie donnée à partir d'une entrée.Est-il possible d'utiliser Tensorflow pour créer un réseau de neurones pour le mappage entrée/sortie?

L'entrée dans ce cas est un audio échantillonné et l'audio génère des fonctions MFCC. Savoir pour chaque fichier ce que la fonction MFCC correspondant est, mais ne savez pas comment je devrais configurer le réseau de neurones.

Je suivais ce guide/tutoriel http://www.kdnuggets.com/2016/09/urban-sound-classification-neural-networks-tensorflow.html/2

Ce qui il est dit que le réseau de neurones est configuré en tant que telle

training_epochs = 5000 
n_dim = tr_features.shape[1] 
n_classes = 10 
n_hidden_units_one = 280 
n_hidden_units_two = 300 
sd = 1/np.sqrt(n_dim) 
learning_rate = 0.01 

Ma question est ici comment je définir le nombre de classes? Je veux dire, les valeurs réelles que j'ai calculées ne sont pas divisées en classes, mais un nombre décimal, alors je dois simplement créer plusieurs réseaux avec un nombre différent de classes, et choisir celui qui a la plus petite erreur par rapport à la valeur d'origine , ou est-ce qu'il y a une commande tensorflow qui peut le faire, car je fais de l'apprentissage supervisé.

Répondre

0

Des réseaux de neurones pourraient être utilisés pour des tâches de classification ou des tâches de régression. Dans tutorial, l'auteur veut classer les sons dans 10 catégories différentes. Ainsi, les réseaux de neurones ont 10 neurones de sortie (n_classes) et chacune de leur valeur d'activation donne la probabilité d'appartenance à une classe pour un son d'entrée.

Dans notre cas, vous voulez mapper un son donné avec un nombre décimal (c'est exact?), C'est donc une tâche de régression: le réseau de neurones doit apprendre une fonction inconnue. Le nombre de neurones de sortie doit être égal à la dimension de sortie de notre fonction inconnue (1 s'il s'agit juste d'un nombre décimal).

Donc, si vous voulez garder la même architecture à notre tâche de régression, juste définir n_classes = 1 et modifions y_ à

y_ = tf.matmul(h_2,W) + b 

parce tf.nn.softmax convertir le score final à la probabilité (il est bon pour le classement, mais pas pour la régression)

+1

OP doit également modifier un coût puisque celui du tutoriel 'cost_function = tf.reduce_mean (-tf.reduce_sum (Y * tf.log (y_), réduction_indices = [1]))' n'a aucun sens pour la régression. – lejlot

+0

Merde, j'ai oublié la fonction Coss. Merci @lejlot! – Corentin