GoogLeNet模型的微调
我从零开始训练了GoogLeNet模型。 但它没有给我带来希望的结果。
作为替代,我想对我的数据集中的GoogLeNet模型进行微调。 有谁知道我应该遵循什么步骤?
采纳答案:
假设你正在尝试做图像分类。 这些应该是微调模型的步骤:
1.分类层
原始分类层"loss3/classifier"输出1000个类的预测(它的mum_output设置为1000)。 您需要将其替换为具有适当num_output的新图层。 替换分类层:
- 更改图层的名称(以便当您从caffemodel文件读取原始权重时,不会与此图层的权重发生冲突)。
- 将
num_output更改为您尝试预测的正确数量的输出类。 - 请注意,您需要更改所有分类图层。 通常只有一个,但是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模型的微调的更多相关文章
- Caffe-5.2-(GPU完整流程)训练(依据googlenet微调)
上一篇使用caffenet的模型微调.但由于caffenet有220M太大,測试速度太慢.因此换为googlenet. 1. 训练 迭代了2800次时死机,大概20分钟. 使用的是2000次的模型. ...
- DL开源框架Caffe | 模型微调 (finetune)的场景、问题、技巧以及解决方案
转自:http://blog.csdn.net/u010402786/article/details/70141261 前言 什么是模型的微调? 使用别人训练好的网络模型进行训练,前提是必须和别人 ...
- 图像分类(一)GoogLenet Inception_V1:Going deeper with convolutions
论文地址 在该论文中作者提出了一种被称为Inception Network的深度卷积神经网络,它由若干个Inception modules堆叠而成.Inception的主要特点是它能提高网络中计算资源 ...
- 21个项目玩转深度学习:基于TensorFlow的实践详解03—打造自己的图像识别模型
书籍源码:https://github.com/hzy46/Deep-Learning-21-Examples CNN的发展已经很多了,ImageNet引发的一系列方法,LeNet,GoogLeNet ...
- 解读(GoogLeNet)Going deeper with convolutions
(GoogLeNet)Going deeper with convolutions Inception结构 目前最直接提升DNN效果的方法是increasing their size,这里的size包 ...
- [论文阅读]Going deeper with convolutions(GoogLeNet)
本文采用的GoogLenet网络(代号Inception)在2014年ImageNet大规模视觉识别挑战赛取得了最好的结果,该网络总共22层. Motivation and High Level Co ...
- TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)
官网:https://developer.nvidia.com/tensorrt 作用:NVIDIA TensorRT™ is a high-performance deep learning inf ...
- CNN-4: GoogLeNet 卷积神经网络模型
1.GoogLeNet 模型简介 GoogLeNet 是2014年Christian Szegedy提出的一种全新的深度学习结构,该模型获得了ImageNet挑战赛的冠军. 2.GoogLeNet 模 ...
- 经典分类CNN模型系列其五:Inception v2与Inception v3
经典分类CNN模型系列其五:Inception v2与Inception v3 介绍 Inception v2与Inception v3被作者放在了一篇paper里面,因此我们也作为一篇blog来对其 ...
随机推荐
- HDU 2710 Max Factor(数论,素数筛法)
#include<iostream> #include<stdio.h> #include<string.h> #include<cmath> usin ...
- 01、Mecanim动画系统
序言:Mecanim动画系统是Unity4.0之后退出的新版动画系统,非常适合人类动画系统.本文是作为自己的学习来讲解的, 可能会有些啰嗦,但尽量把自己的坑都为大家列出来,让大家理解透彻. 一.文件的 ...
- SQL Loader with utf8
alter this line in your control file characterset UTF8 to this characterset UTF8 length semantics ch ...
- 自定义数据类型写入SequenceFile并读出
开头对这边博客的内容做个概述,首先是定义了一个DoubleArrayWritable的类,用于存放矩阵的列向量,然后将其作为value写入SequenceFile中,key就是对应的矩阵的列号,最后( ...
- Scala零基础教学【102-111】Akka 实战-深入解析
第102讲:通过案例解析Akka中的Actor运行机制以及Actor的生命周期 Actor是构建akka程序的核心基石,akka中actor提供了构建可伸缩的,容错的,分布式的应用程序的基本抽象, a ...
- JavaScript 的闭包用于什么场景
本文翻译自 MDN ( Mozilla Developer Network ): 原文地址:MDN 译文地址:shixinzhang 的博客 读完本文你将了解到: 词法作用域 闭包 闭包实战场景之回调 ...
- [Linux] ubuntu 格式化u盘
$sudo fdisks -l 基本功,格式化命令,以格式化 /dev/sdb4 分区为例:$ sudo umount /dev/sdb4 # 必须先卸载该分区 # 格式化为 FAT 分区$ s ...
- 采用Apache作为WebLogic Server集群的负载均衡器
强烈建议不要使用WebLogic ClusterServlet作为Proxy进行生产环境的负载均衡, 那个是用来进行集群的功能测试的,Oracle的产品文挡也写得比较清楚. 如果采用软件的负载均衡,可 ...
- Vue组件基础知识总结
组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ...
- Android画图系列(二)——自己定义View绘制基本图形
这个系列主要是介绍下Android自己定义View和Android画图机制.自己能力有限.假设在介绍过程中有什么错误.欢迎指正 前言 在上一篇Android画图系列(一)--自己定义View基础中我们 ...