Tensorflow模型数据的存储与读取

本文介绍了如何在Tensorflow中存储和读取模型。首先,文章讲解了建立和训练一个简单的卷积神经网络的过程,并将其保存。然后,讨论了如何初始化相同结构的模型加载已保存的数据进行测试,以及解决在Spyde环境下可能出现的问题。此外,还提及通过参数名称获取模型参数的方法,并推荐参考Tensorflow的官方文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tensorflow是谷歌开发的深度学习框架,目前运用已经被广泛应用各种项目,关于Tensorflow框架的介绍这里就不详细阐述了,本文针对那些对Tensorflow有所了解,可以根据教程编写训练和测试Minist数据集的同志们。

运行环境:win10下利用Anaconda配置的Tensorflow,IDE使用Spyde(因为对Spyde的不了解,在使用过程中确实出现了一些问题,本文后面会具体阐述)。

一、准备工作

    首先要定义模型,并训练模型,在这里我定义了一个由两层卷积两层池化和一个全连接层构成的简单卷积神经网络,全连接层中由输入层,单隐含层和输出层构成。

    模型构建具体代码:

#构建一个两层卷积网络
    #权重和偏置量初始化函数
def weight_variable(shape):
  initial = tf.truncated_normal(shape, stddev=0.1)
  return tf.Variable(initial)

def bias_variable(shape):
  initial = tf.constant(0.1, shape=shape)
  return tf.Variable(initial)

    #卷积与池化,vanilla版本
def conv2d(x, W):   #卷积使用1步长(stride size),0边距(padding size)的模板,保证输出和输入是同一个大小。
  return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

def max_pool_2x2(x):    #池化用简单传统的2x2大小的模板做max pooling。
  return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')

    #第一层卷积和池化
        #卷积层的权重与偏置量
W_conv1 = weight_variable([5, 5, 1, 32])    #卷积核的尺寸,输入通道数,输出的通道数(其实就是卷积核的个数)
b_conv1 = bias_variable([32])   #应该为输出的通道数
        #图片的尺寸,[-1,宽度,高度,深度(通道数目)]
x_image = tf.reshape(x, [-1,28,28,1])
        #卷积的过程+加上偏置量,再采用relu激活函数
h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
        #池化的过程
h_pool1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值