2 votes

Comment prédire dans Tensorflow

Je suis un noob à tensorflow. J'ai donc joué avec le problème Xor, ma question est de savoir comment prédire dans tensorflow. Je ne sais pas si j'ai besoin d'un modèle de prédiction, mais j'ai besoin d'un modèle de prédiction. Comment puis-je faire cela ? Jusqu'à présent, j'ai obtenu ce résultat :

import tensorflow as tf
import numpy as np
X = tf.placeholder(tf.float32, shape=([4,2]), name = "Input")
y = tf.placeholder(tf.float32, shape=([4,1]), name = "Output")
#weights
W = tf.Variable(tf.random_uniform([2,2], -1,1), name = "weights1")
w2 = tf.Variable(tf.random_uniform([2,1], -1,1), name = "weights2")
Biases1 = tf.Variable(tf.zeros([2]), name = "Biases1")
Biases2 = tf.Variable(tf.zeros([1]), name = "Biases2")
#Setting up the model
Node1 = tf.sigmoid(tf.matmul(X, W)+ Biases1)
Output = tf.sigmoid(tf.matmul(Node1, w2)+ Biases2)
#Setting up the Cost function
cost = tf.reduce_mean(((y* tf.log(Output))+ 
                       ((1-y)* tf.log(1.0 - Output)))* -1)
#Now to training and optimizing
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
xorX = np.array([[0,0], [0,1], [1,0], [1,1]])
xorY = np.array([[0], [1], [1], [0]])
#Now to creating the session
initial = tf.initialize_all_variables()
sess = tf.Session()
sess.run(initial)
for i in range(100000):
    sess.run(train_step, feed_dict={X: xorX, y: xorY })

1voto

lejlot Points 45245

Puisque votre classification est simplement 0 si Sortie<0.5, vous pouvez ajouter un nouveau noeud de prédiction :

prediction_op = tf.round(Output)

et l'appeler ensuite

print(sess.run(prediction_op, feed_dict={X: np.array([[1., 0.]])}))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X