一个基于tensorflow的finetune整体流程代码

本文详述了如何利用TensorFlow进行Finetune,包括网络构建、数据读取和训练过程。网络部分介绍了conv、norm、pool和fc层的实现,数据读取涉及dataset和assemble_data模块,训练部分讲解了finetune的步骤。
摘要由CSDN通过智能技术生成

本文主要是https://github.com/joelthchao/tensorflow-finetune-flickr-style代码的解释,用于阐述如何构建网络,载入数据以及微调一个已有数据的网络。

1.整体结构

工程主要有5个python文件构成,其中:

  • finetune.py 为工程主体,调用不同模块完成finetune过程
  • model.py 构架所使用的网络
  • network.py 详细定义网络的不同层的属性
  • dataset.py 用于读入数据
  • assemble.py 用于下载数据文件。是一个独立模块

2.构建网络

构建网络主要由network.py和model.py构成。
其中model.py定义并返回一个alexnet。关于AlexNet的介绍可以参考网上其他资料,在此不赘述
而network.py详细定义Net的每一层实现。在AlexNet中主要使用的是卷积层conv、归一化层norm、池化层pool以及全连接层fc让我们来了解下各层参数的意义.

2.1.conv

def conv(input, k_h, k_w, c_o, s_h, s_w, name, relu=True, padding=DEFAULT_PADDING, group=1)
其实在TF里面是存在直接定义卷积层的函数tf.nn.conv2d的,当然这里面也使用了conv2d来定义卷积层。
参数列表:

  • input 输入图像
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值