Tensotflow1.0入门(三)-tensorflow的小例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011311291/article/details/89057972
# coding=utf-8
'''
Created on 2019年4月5日

@author: admin
'''

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import os

mnist = input_data.read_data_sets('mnist', one_hot=True)

trX,trY,teX,teY = mnist.train.images,mnist.train.labels,mnist.train.images,mnist.test.labels

x = tf.placeholder("float",[None,784])
y = tf.placeholder("float",[None,10])
#第一层隐藏层
w1 = tf.Variable(tf.random_normal([784,625]))
#第二层隐藏层
w2 = tf.Variable(tf.random_normal([625,625]))
#输出层
o = tf.Variable(tf.random_normal([625,10]))
#各层dropout系数
keep_prob1 = tf.placeholder("float")
keep_prob2 = tf.placeholder("float")

def model(x,w1,w2,o):
    
    x = tf.nn.relu(tf.matmul(x,w1))
    x = tf.nn.dropout(x,keep_prob1)
    
    
    x = tf.nn.relu(tf.matmul(x,w2))
    x = tf.nn.dropout(x,keep_prob2)

    return tf.matmul(x,o)
pred = model(x,w1,w2,o)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred,labels=y),name="cost")
train_op = tf.train.RMSPropOptimizer(0.001,0.9,name="train_op").minimize(cost)
#虽然前面命名为cost,但是最好还是打印出来看一下名称
print(cost)
# Tensor("cost:0", shape=(), dtype=float32)
print(train_op)
correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

with tf.Session() as sess:
    tf.initialize_all_variables().run()
    for step in range(1):
        for start,end in zip(range(0,len(trX),128),range(128,len(trX)+1,128)):
            loss,_,accuracy1 = sess.run([cost,train_op,accuracy],feed_dict={x:trX[start:end],y:trY[start:end],keep_prob1:0.8,keep_prob2:0.8})
            print(accuracy1)
        print("step",step)
        #保存模型

猜你喜欢

转载自blog.csdn.net/u011311291/article/details/89057972