完整的tensorflow训练、保存和离线加载模型(以mnist为例)

训练模型和保存

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

mnist=input_data.read_data_sets("MNIST_data/",one_hot=True)

print('输入数据:',mnist.train.images)
print('输入数据的shape:',mnist.train.images.shape)

im=mnist.train.images[1]
im=im.reshape(-1,28)
pylab.imshow(im)
pylab.show()

tf.reset_default_graph()
#定义占位符

x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10])

W=tf.Variable(tf.random_normal([784,10]))
b=tf.Variable(tf.zeros([10]))

#定义输出
pred=tf.nn.softmax(tf.matmul(x,W)+b,name='output')#定义一个名字,方便后面解析模型
#定义损失函数,使用对数损失函数
cost=tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1))

#定义训练时候的超参数
learning_rate=0.01
#使用梯度下降优化器
optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

#训练模型
training_epochs=30
batch_size=100
display_step=2

saver=tf.train.Saver()
#初始化变量
init=tf.global_variables_initializer()

#启动session
with tf.Session() as sess:
    sess.ru

猜你喜欢

转载自blog.csdn.net/qq_29462849/article/details/102567110