深度学习tensorflow实战笔记(3)VGG-16训练自己的数据并测试和保存模型

这篇博客详细记录了如何利用TensorFlow和VGG-16模型训练自己的tfrecords格式数据集。从实现VGG-16网络结构,到定义数据读取函数,设置占位符和操作,再到模型训练和保存,最后进行了模型的测试。通过实例展示了整个流程,以便后续查阅和使用。

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

    前面的博客介绍了如何把图像数据转换成tfrecords格式并读取,本篇博客介绍如何用自己的tfrecords格式的数据训练CNN模型,采用的模型是VGG-16。现有的教程都是在mnist或者cifar-10数据集上做的训练,如何用自己的数据集进行训练相关的资料比较少,即使有相关的也是不完整,所以做一个完成流程的学习笔记,以供以后查阅使用。首先要做的是把自己的数据转换成tfrecords文件。

tfrecords文件制作教程:https://blog.youkuaiyun.com/gybheroin/article/details/79800679

1、实现VGG-16

      很久很久以前,有一个年轻小伙子觉得实现一个现成的网络结构是一件非常复杂的事情,直到有一天他发现在caffe平台下修改网络结构就是修改参数文件,他忽然发现,我天,原来这么随意,后来有一天他用了tensorflow,发现原来实现起来是那么任性。。。。。。主要参考代码是tensorflow的源码实现:

#定义卷积层函数
def conv_op(input_op,name,kh,kw,n_out,dh,dw,p): #分别表示输入张量,卷积层名字,
#卷积核高和宽,输出卷积核数量,步长以及步长的高和宽,以及参数列表p
    n_in=input_op.get_shape()[-1].value  #获取输入的通道数量,即输入的卷积核的数量或者图像通道
    with tf.name_scope(name) as scope:
        kernel=tf.get_variable(scope+"w",shape=[kh,kw,n_in,n_out],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer_conv2d())
        conv=tf.nn.conv2d(input_op,kernel,(1,dh,dw,1),padding='SAME')
        bias_init_val=tf.constant(0.0,shape=[n_out],dtype=tf.float32)
        biases=tf.Variable(bias_init_val,trainable=True,name='b')
        z=tf.nn.bias_add(conv,biases)
        activation=tf.nn.relu(z,name=scope)
        p+=[kernel,biases]
        return activation
    
#定义全连接层函数
def fc_op(input_op,name,n_out,p):
    n_in=input_op.get_shape()[-1].value
    
    with tf.name_scope(name) as scope:
        kernel=tf.get_variable(scope+"w",shape=[n_in,n_out],dtype=tf.float32,initializer=tf.contrib.layers.xavier_initializer())
        biases=tf.Variable(tf.constant(0.1,shape=[n_out],dtype=tf.float32),name='b')
        activation=tf.nn.relu_layer(input_op,kernel,biases,name=scope)
        p+=[kernel,biases]
        return activation
    
#创建最大池
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值