保存和提取使用tensorflow训练的模型,以mnist数据集和lenet5为例

本文介绍了如何在TensorFlow中保存和提取模型,以MNIST手写数字识别数据集和LeNet5网络为例。训练过程中涉及加载数据、前向传播、反向传播和模型保存。提取模型时,需加载测试数据并进行前向传播计算。模型保存时,会生成data、index和meta三个文件,meta文件包含graph结构,index文件为string-string映射,data文件存储变量值。默认保存最近5个模型,新模型会覆盖最早的模型。
摘要由CSDN通过智能技术生成
  • 如果你想保存在tensorflow上辛苦训练了很久的模型,随时地去使用它
  • tensorflow将上述过程分成了两个部分:
    训练和保存
    提取和使用
  • 训练部分为:加载训练数据,前向传播计算,代价函数评估,反向传播更新,保存
  • 提取部分为:
    加载测试数据(格式与训练数据保持一致)
    前向传播计算(框架与训练部分一致)
  • 我将以经典的手写数字识别数据集和lenet5框架举例

代码:训练与保存篇

# 导入tensorflow框架
import tensorflow as tf
import numpy as np
# 导入mnist数据集输入方法
from tensorflow.examples.tutorials.mnist import input_data

# 随机种子
tf.set_random_seed(1)

# 读取数据 如果数据存在则直接读取,如果不存在,则联网下载
mnist = input_data.read_data_sets(r'MNIST_data')

# 构建模型
# 数据样本本身是一行784个特征的像素矩阵
x = tf.placeholder(tf.float32,[None,784])
y = tf.placeholder(tf.int64,[None])
# 将像素矩阵转为卷积网络识别的图片格式
x_img = tf.reshape(x,[-1,1,28,28])
x_img = tf.transpose(x_img,perm=[0,2,3,1])

# 前向传播计算
conv1_1 = tf.layers.conv2d(x_img,8,(3,3),padding='same',activation=tf.nn.relu,name='conv1_1')
pool1 = tf.layers.max_pooling2d(conv1_1,(2,2),(2,2),name='pool1')

conv2_1 = tf.layers.conv2d(pool1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值