Problemas na implementação de uma porta XOR com redes neurais no fluxo de tensão

Eu quero fazer uma rede neural trivial, ela deve apenas implementar o portão XOR. Estou usando a biblioteca TensorFlow, em python. Para um portão XOR, os únicos dados com os quais treino, é a tabela completa da verdade, isso deve ser suficiente, certo? Sobre otimização é o que espero que aconteça muito rapidamente. O problema com o código é que opesos epreconceitos Não atualize. De alguma forma, ele ainda me fornece 100% de precisão com zero para os vieses e pesos.

x = tf.placeholder("float", [None, 2])
W = tf.Variable(tf.zeros([2,2]))
b = tf.Variable(tf.zeros([2]))

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

y_ = tf.placeholder("float", [None,1])


print "Done init"

cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.75).minimize(cross_entropy)

print "Done loading vars"

init = tf.initialize_all_variables()
print "Done: Initializing variables"

sess = tf.Session()
sess.run(init)
print "Done: Session started"

xTrain = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
yTrain = np.array([[1], [0], [0], [0]])


acc=0.0
while acc<0.85:
  for i in range(500):
      sess.run(train_step, feed_dict={x: xTrain, y_: yTrain})


  print b.eval(sess)
  print W.eval(sess)


  print "Done training"


  correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

  accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

  print "Result:"
  acc= sess.run(accuracy, feed_dict={x: xTrain, y_: yTrain})
  print acc

B0 = b.eval(sess)[0]
B1 = b.eval(sess)[1]
W00 = W.eval(sess)[0][0]
W01 = W.eval(sess)[0][1]
W10 = W.eval(sess)[1][0]
W11 = W.eval(sess)[1][1]

for A,B in product([0,1],[0,1]):
  top = W00*A + W01*A + B0
  bottom = W10*B + W11*B + B1
  print "A:",A," B:",B
  # print "Top",top," Bottom: ", bottom
  print "Sum:",top+bottom

Estou seguindo o tutorial dehttp://tensorflow.org/tutorials/mnist/beginners/index.md#softmax_regressions e no loop for final, estou imprimindo os resultados da matriz (conforme descrito no link).

Alguém pode apontar meu erro e o que devo fazer para corrigi-lo?

questionAnswers(1)

yourAnswerToTheQuestion