keras 自带VGG16 net 参数分析
对VGG16 这类keras自带的网络分析有感,写在这里.
查看VGG16在keras中的说明文档,可以这样:
from keras.applications.vgg16 import VGG16
然后(在jupyter notebook, jupyter lab或Ipython中)
? VGG16
可查看VGG16的使用帮助.
Signature: VGG16(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
Docstring:
Instantiates the VGG16 architecture.Optionally loads weights pre-trained on ImageNet. Note that when using TensorFlow, for best performance you should set `image_data_format='channels_last'` in your Keras config at ~/.keras/keras.json.
翻译:
可以加载在IMAGENET上预训练的权值. 当使用tensorflow作为backend时, 应该在keras.json中设置" `image_data_format='channels_last'.The model and the weights are compatible with both TensorFlow and Theano. The data format convention used by the model is the one specified in your Keras config file.
翻译:
模型和权重文件在tensorflow和theano backend下都兼容. 但是数据格式的习惯需要在keras config文件中设置(如上).# Arguments 参数介绍:include_top: whether to include the 3 fully-connected layers at the top of the network.weights: one of `None` (random initialization), 'imagenet' (pre-training on ImageNet),or the path to the weights file to be loaded.input_tensor: optional Keras tensor (i.e. output of `layers.Input()`)to use as image input for the model.input_shape: optional shape tuple, only to be specifiedif `include_top` is False (otherwise the input shapehas to be `(224, 224, 3)` (with `channels_last` data format)or `(3, 224, 224)` (with `channels_first` data format).It should have exactly 3 input channels,and width and height should be no smaller than 48.E.g. `(200, 200, 3)` would be one valid value.pooling: Optional pooling mode for feature extractionwhen `include_top` is `False`.- `None` means that the output of the model will bethe 4D tensor output of thelast convolutional layer.- `avg` means that global average poolingwill be applied to the output of thelast convolutional layer, and thusthe output of the model will be a 2D tensor.- `max` means that global max pooling willbe applied.classes: optional number of classes to classify imagesinto, only to be specified if `include_top` is True, andif no `weights` argument is specified.# ReturnsA Keras model instance.# RaisesValueError: in case of invalid argument for `weights`,or invalid input shape.
File: c:\anaconda3\lib\site-packages\keras-2.1.5-py3.6.egg\keras\applications\vgg16.py
Type: function
- include_top: boolean (True or False)
是否包含最上层的全连接层. 因为VGGNET最后有三个全连接层, 因此,这个选项表示是否需要最上面的三个全连接层. 一般网络最后都会有全连接层, 最后一个全连接层更是设定了分类的个数, loss的计算方法, 并架设了一个概率转换函数(soft max). 其实soft max的作用就是将输出转换为各类别的概率,并计算loss.
可以这么说, 最上面三层使用来进行分类的, 其余层使用来进行特征提取的. 因此如果include_top=False,也就表示这个网络只能进行特征提取. 不能在进行新的训练或者在已有权重上fine-tune. - weights: ‘None’ / ‘imagenet’ / path (to the weight file)
None表示没有指定权重,对网络参数进行随机初始化.
‘imagenet’ 表示加载imagenet与训练的网络权重.
‘path’ 表示指向权重文件的路径.
VGG16 的框架是确定的, 而其权重参数的个数和结构完全由输入决定.
如果weight = None, 则输入尺寸可以任意指定,(范围不得小于48, 否则最后一个卷积层没有输出).
如果 weight = ‘imagenet’, 则输入尺寸必须严格等于(224,224), 权重的规模和结构有出入唯一决定, 使用了imagenet的权重,就必须使用训练时所对应的输入, 否则第一个全连接层的输入对接不上. (例如, 原来网络最后一个卷基层的输出为 300, 全连接层的神经元有1000个,则这里权重的结构为300X1000), 而其他的出入不能保证卷基层输出为300, 则对接不上会报错).
如果 weight = ‘path’, 则输入必须和path对应权值文件训练时的输入保持一致. - input_tensor: 图片tonsor输入项
- input_shape: tuple
如果include_top = False(表示用网络进行特征提取), 此时需要指定输入图片尺寸. 如果include_top = True(表示网路被用来进行重新训练或fine-tune), 则图片输入尺寸必须在有效范围内(width & height 大于48)或和加载权重训练时的输入保持一致. - pooling: 当include_top = False(网络被用于特征提取时改参数有效)
(纯自己理解, 可能有误).
最后一个卷基层的输出应该是一个4D的向量.(M,1,w’,h’), 其中w’和h’表示卷积过后得到的基本尺寸. 可以这样想象, 待卷积的目标是一个(N, w, h)的矩阵. 每卷积一次都是在这个矩阵的(n, w,h)上进行卷积, n表示卷积核的深度(2D=2, 3D=3). 最后依然会得到(M, w’,h’)这样一个维度的矩阵作为卷基层的输出. 把每一个2D的(w’, h’)看做一个维度, 那么最终输出就是4D的(M,1,w’,h’).那么:
pooling = None, 表示对输出的特征不作处理,依然是4D的.
pooling = ‘avg’, 表示在M维度进行平均, 最终得到的是一个(1,1,w’,h’)的特征输出.
pooling = ‘max’, 亦然. - classes: 要训练的类别数. 仅当include_top = True, 没有’weights’参数给定.(表示训练一个新网络)
keras 自带VGG16 net 参数分析相关推荐
- android8.1上musicfx,Android自带音频均衡器MusicFx分析
Android自带音频均衡器MusicFx分析 种种原因,我要简单分析一个Android中built-in的音频均衡器MusicFx.重点是它的默认值的来历.网上很少有文章讲了这个的除了这篇<c ...
- ADC的参数分析以及采样分析
A/D变换器的性能参数 2.1 采样速率与分辨率 采样速率指模数变换的速率,而分辨率表示变换输出数字数据的比特数.这2个参数很重要,因为较高的采样速率与分辨率对应了高信噪比和较宽的信号输入带宽.近几年 ...
- 深入理解Java虚拟机-常用vm参数分析
Java虚拟机深入理解系列全部文章更新中- 深入理解Java虚拟机-Java内存区域透彻分析 深入理解Java虚拟机-常用vm参数分析 深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别J ...
- Keras学习| ImageDataGenerator的参数
Keras ImageDataGenerator的参数 from keras.preprocessing.image import ImageDataGenerator keras.preproces ...
- java/php/net/python智能手机参数分析平台设计
本系统带文档lw万字以上+答辩PPT+查重 如果这个题目不合适,可以去我上传的资源里面找题目,找不到的话,评论留下题目,或者站内私信我, 有时间看到机会给您发 系统功能分析和描述 使用智能手机参数分析 ...
- 开店必看!带你用Python分析闲鱼的爆款商品
开店必看!带你用Python分析闲鱼的爆款商品 分享 Python 自动化及爬虫.数据分析实战干货,欢迎关注. 1 目 标 场 景 经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带 ...
- Android自带音频均衡器MusicFx分析
Android自带音频均衡器MusicFx分析 种种原因,我要简单分析一个Android中built-in的音频均衡器MusicFx.重点是它的默认值的来历.网上很少有文章讲了这个的除了这篇<c ...
- Chart.js-极区图分析(参数分析+例图)
Chart.js-极区图分析(参数分析+例图) 极区图样式总览 基本写法 参数解析 极区图1 - 普通极区图 极区图样式总览 基本写法 首先在< script >标签里面引入chart.j ...
- Chart.js-饼状图分析(参数分析+例图)
Chart.js-饼状图分析(参数分析+例图) 饼状图样式总览 基本写法 参数解析 饼状图2 - 中空同心圆 饼状图3 - 多同心圆 饼状图样式总览 基本写法 首先在< script >标 ...
最新文章
- latex beamer 空一行_握草!一行Python代码写的游戏,我能这样玩一天
- [Leedcode][JAVA][第46题][全排列][回溯算法]
- nginx安装与项目发布
- asp:dropdownlist如何去掉三角箭头_如何使用css伪元素实现超实用的图标库(附源码)...
- Ds918 ds3615 ds3617区别_苹果678有什么区别
- 有哪些wordpress企业网站主题推荐?
- robots.txt文件信息泄漏
- Swift中的下标(subscript)
- 2017年世界各国GDP总值排名预测榜单
- Android开发学习——2.Android开发环境准备
- jQuery 实现淡入淡出效果
- JAVA-JDBC事务基础概念及测试方法
- OCR:光学字符识别技术
- 深力科电子~LM317MBDTRKG 线性电压稳压器
- 分享篇:第十届“泰迪杯”数据挖掘挑战赛-农田害虫图像识别(特等奖)
- 域名备案注销 麦谈帮API数据接口
- 最常用web server---Nginx
- 2 软件测试生命周期,软测试常见面试题-简述一下软件缺陷的生命周期
- 吃什么主食容易发胖?
- 3>2,看看U.3升级了啥
热门文章
- 更新软件后,英国客户给我的寻星工具耐心提建议了
- 视锥体裁剪(从矩阵中提取6个裁剪面)
- 棋盘法应用_计算_微信小游戏一笔画完超萌喵星人
- 黑轴和红轴哪个打游戏更好 黑轴和红轴哪个手感好
- 百度云的“链接不存在或失效”怎么破?
- **关于idea无限期破解出现的问题**
- Linux主机访问实达终端辅口,实达TC8000系列终端PCTERM操作说明
- mysql mtbf计算_手把手教你计算MTBF(平均故障间隔时间),有实例!
- 通过jason上传图片_Jason Lengstorf通过放慢速度来提高生产率
- 数据以简为美,平安银行指标平台建设实践