2017-02-14 2 views
0

Je suis nouveau sur Python, Machine Learning et TensorFlow et je me sens très dépassé!TensorFlow, Solution de mise en œuvre

Je travaille toujours sur l'ensemble de données MNIST et ont le code suivant (que j'ai obéis des tutoriels tensorflow):

from tensorflow.examples.tutorials.mnist import input_data 
mnist = input_data.read_data_sets('MNIST_data',one_hot=True) 

import tensorflow as tf 
sess = tf.InteractiveSession() 

x = tf.placeholder(tf.float32, shape = [None,784]) 
y_ = tf.placeholder(tf.float32, shape = [None,10]) 

W = tf.Variable(tf.zeros([784,10])) 
b = tf.Variable(tf.zeros([10])) 

sess.run(tf.global_variables_initializer()) 

y = tf.matmul(x,W) + b 

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y,y_)) 

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) 

for i in range(10): 
    batch = mnist.train.next_batch(100) 
    train_step.run(feed_dict={x: batch[0], y_: batch[1]}) 

    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) 
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 
    print(accuracy.eval(feed_dict={x: mnist.test.images, y_:mnist.test.labels})) 

Ma question est, d'ici, comment puis-je extraire la solution faire une application utilisable? Par quoi je veux dire, comment puis-je arriver à l'étape où je peux nourrir une image et obtenir une prédiction d'un nombre sur la base de la formation de l'ensemble de données MNIST.

Un grand merci

+0

Dans le cas où cela est important, je cours Python 3.5 sur Windows 10 et j'ai TensorFlow version 0.12, – jlt199

Répondre

0

Avec votre code, il devrait fonctionner comme ceci:

test_prediction = y.eval(feed_dict={x: mnist.test.images})

Si vous voulez avoir « vos propres images », vous devez vous assurer qu'ils sont le même format que votre variable mnist.test.images. Dans ce cas, vous pouvez remplacer mnist.test.images dans le code ci-dessus par n'importe quel tableau Numpy rempli de tableaux de longueur 787 (image de 28 par 28 pixels). S'il vous plaît laissez-moi savoir si cela fonctionne!

+0

Merci pour votre réponse. J'ai ajouté ce qui suit à mon code 'test_prediction = y.eval (feed_dict = {x: mnist.validation.images}) imprimer (tf.argmax (test_prediction, 1) .eval())' et cela me donne un liste des valeurs prédites :) Mais, je suis toujours dans l'InteractiveSession. Puis-je maintenant exporter la solution pour travailler en dehors de TensorFlow? – jlt199

+0

Génial que ça marche! Que voulez-vous dire "travailler en dehors de Tensorflow"? Comme vous utilisez les opérations Tensorflow vous devez toujours les utiliser si vous déployez cette solution quelque part;) Si vous avez une question spécifique sur la façon d'utiliser ce programme ailleurs (par exemple avec Flask), vous pouvez poster une nouvelle question! – rmeertens

+0

Hmm, je vais essayer d'expliquer ce que je veux dire, et j'espère que vous pourrez me faire savoir si j'ai besoin de commencer une nouvelle question. Je veux une solution autonome qui fonctionnera en dehors de la session interactive tensorflow, par exemple une fonction, où je peux envoyer de nouvelles requêtes et récupérer des prédictions. Je ne veux pas avoir à recycler le réseau chaque fois que j'ai une nouvelle image à analyser. – jlt199