訓練模型和保存
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