完整的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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章