python代码
import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('/tmp/data/', one_hot=True)
xtrain, ytrain = mnist.train.next_batch(2000)
xtest, ytest = mnist.test.next_batch(200)
xi = tf.placeholder(tf.float32, [None, 784])
yi = tf.placeholder(tf.float32,784)
distance = tf.reduce_sum(tf.abs(tf.add(xi, tf.negative(yi) )), reduction_indices=1 )
pred = tf.argmin(distance, 0)
init = tf.global_variables_initializer()
acc = 0.0
with tf.Session() as sess:
sess.run(init)
for i in range(len(xtest)):
sample = xtest[i,:]
pres_index = sess.run(pred, feed_dict={xi:xtrain, yi:sample })
pred_label = np.argmax(ytrain[pres_index])
target = np.argmax(ytest[i])
print('sample:{} | pred:{} | target:{}'.format(i, pred_label, target))
if pred_label == target:
acc += 1/len(xtest)
print('finished, final accuracy is:{}'.format(acc))
总结
- tensorflow可以只进行前向计算,比如本例,相当于就是numpy