Je suis en train de mettre en œuvre abandon scolaire dans tensorflow pour un simple réseau de neurones 3 couches pour la classification et me présente des problèmes. Plus précisément, Je suis en train d'appliquer différents paramètres d'abandon des valeurs pkeep
quand je train aux tests.Retard TensorFlow: comment appliquer différentes valeurs à Train vs Test?
Je prends l'approche comme suit:
1) create_placeholders def (n_x, n_y):
X = tf.placeholder("float", [n_x, None])
Y = tf.placeholder("float", [n_y, None])
pkeep = tf.placeholder(tf.float32)
return X,Y,pkeep
2) Dans la fonction forward_propagation (X, paramètres, pkeep), je joue les éléments suivants:
Z1 = tf.add(tf.matmul(W1, X), b1)
A1 = tf.nn.relu(Z1)
A1d = tf.nn.dropout(A1, pkeep)
Z2 = tf.add(tf.matmul(W2, A1d),b2)
A2 = tf.nn.relu(Z2)
A2d = tf.nn.dropout(A2, pkeep)
Z3 = tf.add(tf.matmul(W3, A2d),b3)
return Z3
3) Plus tard, quand tensorflow session est appelé (entre les lignes de code omis pour plus de clarté):
X, Y, pkeep = create_placeholders(n_x, n_y)
Z3 = forward_propagation(X, parameters, pkeep)
sess.run([optimizer,cost], feed_dict={X:minibatch_X, Y:minibatch_Y, pkeep: 0.75})
Au-dessus courraient sans donner aucune erreur. Cependant, je pense que ce qui précède établirait la valeur pkeep
à 0,75 pour les courses d'entraînement et de test. La minibatching est effectuée uniquement sur l'ensemble de données du train, mais je ne définis pas la valeur pkeep
nulle part ailleurs. Je voudrais définir pkeep = 0.75
pour la formation et pkeep = 1.0
pour les tests.
4) Il ne donne une erreur quand je fais quelque chose comme ceci:
x_train_eval = Z3.eval(feed_dict={X: X_train, Y: Y_train, pkeep: 0.75})
x_test_eval = Z3.eval(feed_dict={X: X_test, Y: Y_test, pkeep: 1.0})
Le message d'erreur que je reçois est:
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Placeholder_2' with dtype float
[[Node: Placeholder_2 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
Quelle est la meilleure façon de passer différents pkeep
valeurs pour la formation et les tests? Vos conseils seraient grandement appréciés.
Merci Engineero. C'était très utile. Je l'ai eu pour travailler. – BrightOrange
@BrightOrange génial! Si l'une des réponses a aidé, veuillez la marquer comme correcte afin que les personnes ayant le même problème à l'avenir sachent ce qui a fonctionné pour vous. – Engineero
Si le marquer comme «correct» signifie marquer la «réponse aussi utile», on m'a dit que j'ai besoin d'au moins 15 points de réputation pour le faire. Dès que j'aurai accumulé 15 points, je reviendrai et je le ferai. Je viens de rejoindre hier =) Merci beaucoup. – BrightOrange