最近在做李宏毅的深度学习的作业,导入模型的时候,发现,我在导入模型进行预测时,需要重新手动构建网络进行检测,这样显得十分不“智能”。之前在比赛中一直是使用这种方法,但是由于当初比较忙,并没有深究这个问题。现在,学习了一下,发现使用Tensorflow可以用两种方法进行预测。
首先,我们来讲一下,如何将如何加载模型:
在TensorFlow中,加载模型的方法:
with tf.Session() as sess:
saver = tf.train.Saver()
saver.restore(sess, 'path_of_model')
接下来,我们看一下加载模型并预测的方法
一、手动重写网络模型,进行检测
顾名思义,就是在加载自己训练的模型之前,重新手写一遍自己用来训练的网络,将图像的特征提取处理,然后得到feature map后传入模型进行预测,然我们来看看代码吧:
data = tf.placeholder(tf.float32, [None, 28*28])
label = tf.placeholder(tf.float32, [None, 10])
keep_prob = tf.placeholder(tf.float32)
image = tf.reshape(data, [-1, 28, 28, 1])
# conv1
W_conv1 = Weights([5, 5, 1, 6])
B_conv1 = Bias([6])
conv1 = tf.nn.conv2d(image, W_conv1, strides=