我从零开始训练了GoogLeNet模型。 但它没有给我带来希望的结果。 
作为替代,我想对我的数据集中的GoogLeNet模型进行微调。 有谁知道我应该遵循什么步骤?

采纳答案:

假设你正在尝试做图像分类。 这些应该是微调模型的步骤:

1.分类层

原始分类层"loss3/classifier"输出1000个类的预测(它的mum_output设置为1000)。 您需要将其替换为具有适当num_output的新图层。 替换分类层:

  1. 更改图层的名称(以便当您从caffemodel文件读取原始权重时,不会与此图层的权重发生冲突)。
  2. num_output更改为您尝试预测的正确数量的输出类。
  3. 请注意,您需要更改所有分类图层。 通常只有一个,但是GoogLeNet碰巧有三个: "loss1/classifier" , "loss2/classifier""loss3/classifier" 。

2.数据

您需要创建一个新的训练数据集,其中包含您想要调整的新标签。 例如,请参阅这篇文章 ,了解如何制作lmdb数据集。

3.你想要进行多少广泛的调谐?

微调模型时,可以训练所有模型的权重,或者选择修正一些权重(通常是较低/较深层次的过滤器),并仅训练最顶层的权重。 这个选择取决于你,它通常取决于可用的训练数据量(更多的例子你可以承受更多的权重,可以进行微调)。 
每个图层(包含可训练参数)都有param { lr_mult: XX } 。 这个系数决定了这些权重对SGD更新的敏感程度。 设置param { lr_mult: 0 }意味着你修改这个图层的权重,并且在训练过程中它们不会被改变。 
相应地编辑您的train_val.prototxt 。

4.运行咖啡

运行caffe train但提供caffemodel的重量作为初始重量:

~$ $CAFFE_ROOT/build/tools/caffe train -solver /path/to/solver.ptototxt -weights /path/to/orig_googlenet_weights.caffemodel

  

更多答案请参考GoogLeNet模型的微调。版权归stackoverflow所有,转载请保留此链接 GoogLeNet模型的微调

更多关于caffe 的细节,关注徐其华大神的系列博客,写得非常详细。

链接:http://www.cnblogs.com/denny402/tag/caffe/

GoogLeNet模型的微调的更多相关文章

  1. Caffe-5.2-(GPU完整流程)训练(依据googlenet微调)

    上一篇使用caffenet的模型微调.但由于caffenet有220M太大,測试速度太慢.因此换为googlenet. 1. 训练 迭代了2800次时死机,大概20分钟. 使用的是2000次的模型. ...

  2. DL开源框架Caffe | 模型微调 (finetune)的场景、问题、技巧以及解决方案

    转自:http://blog.csdn.net/u010402786/article/details/70141261 前言 什么是模型的微调?   使用别人训练好的网络模型进行训练,前提是必须和别人 ...

  3. 图像分类(一)GoogLenet Inception_V1:Going deeper with convolutions

    论文地址 在该论文中作者提出了一种被称为Inception Network的深度卷积神经网络,它由若干个Inception modules堆叠而成.Inception的主要特点是它能提高网络中计算资源 ...

  4. 21个项目玩转深度学习:基于TensorFlow的实践详解03—打造自己的图像识别模型

    书籍源码:https://github.com/hzy46/Deep-Learning-21-Examples CNN的发展已经很多了,ImageNet引发的一系列方法,LeNet,GoogLeNet ...

  5. 解读(GoogLeNet)Going deeper with convolutions

    (GoogLeNet)Going deeper with convolutions Inception结构 目前最直接提升DNN效果的方法是increasing their size,这里的size包 ...

  6. [论文阅读]Going deeper with convolutions(GoogLeNet)

    本文采用的GoogLenet网络(代号Inception)在2014年ImageNet大规模视觉识别挑战赛取得了最好的结果,该网络总共22层. Motivation and High Level Co ...

  7. TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)

    官网:https://developer.nvidia.com/tensorrt 作用:NVIDIA TensorRT™ is a high-performance deep learning inf ...

  8. CNN-4: GoogLeNet 卷积神经网络模型

    1.GoogLeNet 模型简介 GoogLeNet 是2014年Christian Szegedy提出的一种全新的深度学习结构,该模型获得了ImageNet挑战赛的冠军. 2.GoogLeNet 模 ...

  9. 经典分类CNN模型系列其五:Inception v2与Inception v3

    经典分类CNN模型系列其五:Inception v2与Inception v3 介绍 Inception v2与Inception v3被作者放在了一篇paper里面,因此我们也作为一篇blog来对其 ...

随机推荐

  1. UVA Rails(stl-stack)

    具体思路是从B方向的序列 倒推 栈C 的入栈出栈顺序,  以B方向的5,4,3,2,1为例子:从一个数字5开始,要想从栈C拿到5号车厢,5号车厢得入栈C,且5号车厢处于栈顶位置,为了保证5号车  厢在 ...

  2. 洛谷——P2719 搞笑世界杯

    题目背景 很久很久以后,一次世界杯,. 题目描述 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比 ...

  3. 3、Flask实战第3天:url_for使用

    我们之前是通过url来找到对应的视图函数 /     =>    hello_world 那么url_for则是通过视图函数找到url hello world  =>  / 演示如下 .. ...

  4. 【贪心】【二维偏序】【权值分块】bzoj1691 [Usaco2007 Dec]挑剔的美食家

    既然题目中的要求满足二维偏序,那么我们很自然地想到将所有东西(草和牛)都读进来之后,对一维(美味度)排序,然后在另一维(价值)中取当前最小的. 于是,Splay.mutiset.权值分块什么的都支持查 ...

  5. Linux下提示命令找不到:bash:command not found

    Linux下输入某些命令时会提示:bash:command not found. 首先,查看$PATH中是否包含了这些命令. $PATH:决定了shell到哪些目录中去寻找命令或程序,PATH值是一系 ...

  6. Java学习笔记(6)

    java是面向对象的语言. 对象:真实存在的唯一的事物. 类:实际就是对某种类型事物的共性属性与行为的抽取 面向对象的计算机语言的核心思想:找适合的对象做适合的事情. 如何找适合的对象呢: 1.sun ...

  7. Dom4jDemo应用-保存手机信息

    ---恢复内容开始--- import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStr ...

  8. mysql用unix时间戳统计一个日期段的数据

    select DATE_FORMAT(FROM_UNIXTIME(date),'%Y-%m-%d') as d, count(*) as c from tb where (FROM_UNIXTIME( ...

  9. React Native 让组件做到局部刷新

    利用RN的状态机机制,我们可以通过this.setState({optional:...})来控制界面的刷新,但是一定会触发render方法,那如何保证不调用render方法从而做到界面的局部刷新呢? ...

  10. HashMap源码-Basic hash bin node

    /** * Basic hash bin node, used for most entries. (See below for * TreeNode subclass, and in LinkedH ...