import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data data_path = 'F:\CNN\data\mnist' mnist_data = input_data.read_data_sets(data_path,one_hot=True) #offline dataset x_data = tf.placeholder("float32", [None, 784]) # None means we can import any number of images weight = tf.Variable(tf.ones([784,10])) bias = tf.Variable(tf.ones([10])) Y_model = tf.nn.softmax(tf.matmul(x_data ,weight) + bias) #Y_model = tf.nn.sigmoid(tf.matmul(x_data ,weight) + bias) ''' weight1 = tf.Variable(tf.ones([784,256])) bias1 = tf.Variable(tf.ones([256])) Y_model1 = tf.nn.softmax(tf.matmul(x_data ,weight1) + bias1) weight1 = tf.Variable(tf.ones([256,10])) bias1 = tf.Variable(tf.ones([10])) Y_model = tf.nn.softmax(tf.matmul(Y_model1 ,weight1) + bias1) ''' y_data = tf.placeholder("float32", [None, 10]) loss = tf.reduce_sum(tf.pow((y_data - Y_model), 2 ))#92%-93% #loss = tf.reduce_sum(tf.square(y_data - Y_model)) #90%-91% optimizer = tf.train.GradientDescentOptimizer(0.01) train = optimizer.minimize(loss) init = tf.global_variables_initializer() sess = tf.Session() sess.run(init) # reset values to wrong for i in range(100000): batch_xs, batch_ys = mnist_data.train.next_batch(50) sess.run(train, feed_dict = {x_data: batch_xs, y_data: batch_ys}) if i%50==0: correct_predict = tf.equal(tf.arg_max(Y_model,1),tf.argmax(y_data,1)) accurate = tf.reduce_mean(tf.cast(correct_predict,"float")) print(sess.run(accurate,feed_dict={x_data:mnist_data.test.images,y_data:mnist_data.test.labels}))
文章来源: tensorflow实现mnist手写数字识别