当前位置: 首页 > news >正文

辽源市网站建设_网站建设公司_前端开发_seo优化

兴县做网站公司,网站更改域名,做网站要费用多少,wordpress 私活卷积神经网络迁移学习-Inception • 有论文依据表明可以保留训练好的inception模型中所有卷积层的参数#xff0c;只替换最后一层全连接层。在最后 这一层全连接层之前的网络称为瓶颈层。 • 原理#xff1a;在训练好的inception模型中#xff0c;因为将瓶颈层的输出再通过…卷积神经网络迁移学习-Inception • 有论文依据表明可以保留训练好的inception模型中所有卷积层的参数只替换最后一层全连接层。在最后 这一层全连接层之前的网络称为瓶颈层。 • 原理在训练好的inception模型中因为将瓶颈层的输出再通过一个单层的全连接层神经网络可以很好 的区分1000种类别的图像所以可以认为瓶颈层输出的节点向量可以被作为任何图像的一个更具有表达能 力的特征向量。于是在新的数据集上可以直接利用这个训练好的神经网络对图像进行特征提取然后将提 取得到的特征向量作为输入来训练一个全新的单层全连接神经网络处理新的分类问题。 • 一般来说在数据量足够的情况下迁移学习的效果不如完全重新训练。但是迁移学习所需要的训练时间和 训练样本要远远小于训练完整的模型。 • 这其中说到inception模型其实它是和Alexnet结构完全不同的卷积神经网络。在Alexnet模型中不同卷积 层通过串联的方式连接在一起而inception模型中的inception结构是将不同的卷积层通过并联的方式结合 在一起 Inception Inception 网络是 CNN 发展史上一个重要的里程碑。在 Inception 出现之前大部分流行 CNN 仅仅是把卷积层堆叠得越来越多使网络越来越深以此希望能够得到更好的性能。但是存 在以下问题 图像中突出部分的大小差别很大。由于信息位置的巨大差异为卷积操作选择合适的卷积核大小就比较困难。信息分布更全局性的图像偏好较大的卷积核信息分布比较局部的图像偏好较小的卷积核。非常深的网络更容易过拟合。将梯度更新传输到整个网络是很困难的。简单地堆叠较大的卷积层非常消耗计算资源。 狗在各个图片的占比不同~可能想要得到的部分在图中占比很小。 Inception module 解决方案 为什么不在同一层级上运行具备多个尺寸的滤波器呢网络本质上会变得稍微「宽一些」而不是 「更深」。 作者因此设计了 Inception 模块。 Inception 模块 Inception module 它使用 3 个不同大小的滤波器1x1、3x3、5x5对输入执 行卷积操作此外它还会执行最大池化。所有子层的输出最后会被级联起来并传送至下一个 Inception 模块。 一方面增加了网络的宽度另一方面增加了网络对尺度的适应性 实现降维的 Inception 模块 如前所述深度神经网络需要耗费大量计算资源。为了降低算力成 本作者在 3x3 和 5x5 卷积层之前添加额外的 1x1 卷积层来限制输入通道的数量。尽管添加额 外的卷积操作似乎是反直觉的但是 1x1 卷积比 5x5 卷积要廉价很多而且输入通道数量减少也 有利于降低算力成本。 InceptionV1–Googlenet GoogLeNet采用了Inception模块化9个的结构共22层为了避免梯度消失网络额外增加了2个辅助的softmax用于向前传导梯度。 V1改进版–InceptionV2 改进一 Inception V2 在输入的时候增加了BatchNormalization • 所有输出保证在0~1之间。 • 所有输出数据的均值接近0标准差接近1的正太分布。使其落入激活函数的敏感区避免梯度 消失加快收敛。 • 加快模型收敛速度并且具有一定的泛化能力。 • 可以减少dropout的使用。 改进二 • 作者提出可以用2个连续的3x3卷积层(stride1)组成的小网络来代替单个的5x5卷积 层这便是Inception V2结构。 • 5x5卷积核参数是3x3卷积核的25/92.78倍。 改进三 此外作者将 n*n 的卷积核尺寸分解为 1×n 和 n×1 两个卷积。 前面三个原则用来构建三种不同类型 的 Inception 模块。 V2改进版–InceptionV3 改进 InceptionV3 整合了前面 Inception v2 中提到的所有升级还使用了7x7 卷积 思想和Trick Inception V3设计思想和Trick 1分解成小卷积很有效可以降低参数量减轻过拟合增加网络非线性的表达能力。 2卷积网络从输入到输出应该让图片尺寸逐渐减小输出通道数逐渐增加即让空间结 构化将空间信息转化为高阶抽象的特征信息。 3Inception Module用多个分支提取不同抽象程度的高阶特征的思路很有效可以丰富网络 的表达能力 InceptionV3代码实现 网络部分 #-------------------------------------------------------------# # InceptionV3的网络部分 #-------------------------------------------------------------# from __future__ import print_function from __future__ import absolute_importimport warnings import numpy as npfrom keras.models import Model from keras import layers from keras.layers import Activation,Dense,Input,BatchNormalization,Conv2D,MaxPooling2D,AveragePooling2D from keras.layers import GlobalAveragePooling2D,GlobalMaxPooling2D from keras.engine.topology import get_source_inputs from keras.utils.layer_utils import convert_all_kernels_in_model from keras.utils.data_utils import get_file from keras import backend as K from keras.applications.imagenet_utils import decode_predictions from keras.preprocessing import imagedef conv2d_bn(x,filters,num_row,num_col,strides(1, 1),paddingsame,nameNone):if name is not None:bn_name name _bnconv_name name _convelse:bn_name Noneconv_name Nonex Conv2D(filters, (num_row, num_col),stridesstrides,paddingpadding,use_biasFalse,nameconv_name)(x)x BatchNormalization(scaleFalse, namebn_name)(x)x Activation(relu, namename)(x)return xdef InceptionV3(input_shape[299,299,3],classes1000):img_input Input(shapeinput_shape)x conv2d_bn(img_input, 32, 3, 3, strides(2, 2), paddingvalid)x conv2d_bn(x, 32, 3, 3, paddingvalid)x conv2d_bn(x, 64, 3, 3)x MaxPooling2D((3, 3), strides(2, 2))(x)x conv2d_bn(x, 80, 1, 1, paddingvalid)x conv2d_bn(x, 192, 3, 3, paddingvalid)x MaxPooling2D((3, 3), strides(2, 2))(x)#--------------------------------## Block1 35x35#--------------------------------## Block1 part1# 35 x 35 x 192 - 35 x 35 x 256branch1x1 conv2d_bn(x, 64, 1, 1)branch5x5 conv2d_bn(x, 48, 1, 1)branch5x5 conv2d_bn(branch5x5, 64, 5, 5)branch3x3dbl conv2d_bn(x, 64, 1, 1)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 32, 1, 1)# 64649632 256x layers.concatenate([branch1x1, branch5x5, branch3x3dbl, branch_pool],axis3,namemixed0)# Block1 part2# 35 x 35 x 256 - 35 x 35 x 288branch1x1 conv2d_bn(x, 64, 1, 1)branch5x5 conv2d_bn(x, 48, 1, 1)branch5x5 conv2d_bn(branch5x5, 64, 5, 5)branch3x3dbl conv2d_bn(x, 64, 1, 1)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 64, 1, 1)# 64649664 288 x layers.concatenate([branch1x1, branch5x5, branch3x3dbl, branch_pool],axis3,namemixed1)# Block1 part3# 35 x 35 x 288 - 35 x 35 x 288branch1x1 conv2d_bn(x, 64, 1, 1)branch5x5 conv2d_bn(x, 48, 1, 1)branch5x5 conv2d_bn(branch5x5, 64, 5, 5)branch3x3dbl conv2d_bn(x, 64, 1, 1)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 64, 1, 1)# 64649664 288 x layers.concatenate([branch1x1, branch5x5, branch3x3dbl, branch_pool],axis3,namemixed2)#--------------------------------## Block2 17x17#--------------------------------## Block2 part1# 35 x 35 x 288 - 17 x 17 x 768branch3x3 conv2d_bn(x, 384, 3, 3, strides(2, 2), paddingvalid)branch3x3dbl conv2d_bn(x, 64, 1, 1)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3)branch3x3dbl conv2d_bn(branch3x3dbl, 96, 3, 3, strides(2, 2), paddingvalid)branch_pool MaxPooling2D((3, 3), strides(2, 2))(x)x layers.concatenate([branch3x3, branch3x3dbl, branch_pool], axis3, namemixed3)# Block2 part2# 17 x 17 x 768 - 17 x 17 x 768branch1x1 conv2d_bn(x, 192, 1, 1)branch7x7 conv2d_bn(x, 128, 1, 1)branch7x7 conv2d_bn(branch7x7, 128, 1, 7)branch7x7 conv2d_bn(branch7x7, 192, 7, 1)branch7x7dbl conv2d_bn(x, 128, 1, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 128, 7, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 128, 1, 7)branch7x7dbl conv2d_bn(branch7x7dbl, 128, 7, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 192, 1, 7)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 192, 1, 1)x layers.concatenate([branch1x1, branch7x7, branch7x7dbl, branch_pool],axis3,namemixed4)# Block2 part3 and part4# 17 x 17 x 768 - 17 x 17 x 768 - 17 x 17 x 768for i in range(2):branch1x1 conv2d_bn(x, 192, 1, 1)branch7x7 conv2d_bn(x, 160, 1, 1)branch7x7 conv2d_bn(branch7x7, 160, 1, 7)branch7x7 conv2d_bn(branch7x7, 192, 7, 1)branch7x7dbl conv2d_bn(x, 160, 1, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 160, 7, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 160, 1, 7)branch7x7dbl conv2d_bn(branch7x7dbl, 160, 7, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 192, 1, 7)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 192, 1, 1)x layers.concatenate([branch1x1, branch7x7, branch7x7dbl, branch_pool],axis3,namemixed str(5 i))# Block2 part5# 17 x 17 x 768 - 17 x 17 x 768branch1x1 conv2d_bn(x, 192, 1, 1)branch7x7 conv2d_bn(x, 192, 1, 1)branch7x7 conv2d_bn(branch7x7, 192, 1, 7)branch7x7 conv2d_bn(branch7x7, 192, 7, 1)branch7x7dbl conv2d_bn(x, 192, 1, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 192, 7, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 192, 1, 7)branch7x7dbl conv2d_bn(branch7x7dbl, 192, 7, 1)branch7x7dbl conv2d_bn(branch7x7dbl, 192, 1, 7)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 192, 1, 1)x layers.concatenate([branch1x1, branch7x7, branch7x7dbl, branch_pool],axis3,namemixed7)#--------------------------------## Block3 8x8#--------------------------------## Block3 part1# 17 x 17 x 768 - 8 x 8 x 1280branch3x3 conv2d_bn(x, 192, 1, 1)branch3x3 conv2d_bn(branch3x3, 320, 3, 3,strides(2, 2), paddingvalid)branch7x7x3 conv2d_bn(x, 192, 1, 1)branch7x7x3 conv2d_bn(branch7x7x3, 192, 1, 7)branch7x7x3 conv2d_bn(branch7x7x3, 192, 7, 1)branch7x7x3 conv2d_bn(branch7x7x3, 192, 3, 3, strides(2, 2), paddingvalid)branch_pool MaxPooling2D((3, 3), strides(2, 2))(x)x layers.concatenate([branch3x3, branch7x7x3, branch_pool], axis3, namemixed8)# Block3 part2 part3# 8 x 8 x 1280 - 8 x 8 x 2048 - 8 x 8 x 2048for i in range(2):branch1x1 conv2d_bn(x, 320, 1, 1)branch3x3 conv2d_bn(x, 384, 1, 1)branch3x3_1 conv2d_bn(branch3x3, 384, 1, 3)branch3x3_2 conv2d_bn(branch3x3, 384, 3, 1)branch3x3 layers.concatenate([branch3x3_1, branch3x3_2], axis3, namemixed9_ str(i))branch3x3dbl conv2d_bn(x, 448, 1, 1)branch3x3dbl conv2d_bn(branch3x3dbl, 384, 3, 3)branch3x3dbl_1 conv2d_bn(branch3x3dbl, 384, 1, 3)branch3x3dbl_2 conv2d_bn(branch3x3dbl, 384, 3, 1)branch3x3dbl layers.concatenate([branch3x3dbl_1, branch3x3dbl_2], axis3)branch_pool AveragePooling2D((3, 3), strides(1, 1), paddingsame)(x)branch_pool conv2d_bn(branch_pool, 192, 1, 1)x layers.concatenate([branch1x1, branch3x3, branch3x3dbl, branch_pool],axis3,namemixed str(9 i))# 平均池化后全连接。x GlobalAveragePooling2D(nameavg_pool)(x)x Dense(classes, activationsoftmax, namepredictions)(x)inputs img_inputmodel Model(inputs, x, nameinception_v3)return modeldef preprocess_input(x):x / 255.x - 0.5x * 2.return xif __name__ __main__:model InceptionV3()model.load_weights(inception_v3_weights_tf_dim_ordering_tf_kernels.h5)img_path elephant.jpgimg image.load_img(img_path, target_size(299, 299))x image.img_to_array(img)x np.expand_dims(x, axis0)x preprocess_input(x)preds model.predict(x)print(Predicted:, decode_predictions(preds)) Inception模型优势 采用了1x1卷积核性价比高用很少的计算量既可以增加一层的特征变换和非线性变换。提出Batch Normalization通过一定的手段把每层神经元的输入值分布拉到均值0方差1 的正态分布使其落入激活函数的敏感区避免梯度消失加快收敛。引入Inception module4个分支结合的结构。
http://www.ihoyoo.com/news/95963.html

相关文章:

  • 西安的做网站的公司WordPress微信域名防封源码
  • 海诚网站建设企业网站上的工资表怎么做
  • 个人网站有哪些站wordpress是php语言
  • 网站建设 经典书籍专业建设网站应该怎么做
  • 石桥铺网站建设企业网站php模版
  • c2c网站是什么本地专业app开发公司电话
  • 企业网站的建设 任务书wordpress判断用户权限
  • 最近重大新闻事件2021做搜狗网站优化首页软
  • 申请做网站_论坛版主网站开发说明
  • 鹤壁市淇县网站建设申请网址怎么申请的
  • 网站建设开户行查询想要推广网页
  • 提供服务好的网站建设网站建设策划框架
  • 医疗机械网站怎么做企业网页设计网站案例
  • 搞个app要多少钱免费seo教程
  • 株洲市荷塘区城乡建设局网站长沙快速排名优化
  • 同江佳木斯网站建设微信网页版怎么下载
  • WordPress 布局 企业网站产品推广软文500字
  • 无锡网站建设价格低青岛城市建设投资建设集团网站
  • 用html制作个人网站源代码网站 简约
  • 互诺科技做网站怎么样单纯的文章网站怎么做
  • 网站建设佰金手指科杰二八河北网上注册公司流程
  • 上海教育网站官网宣传册设计与制作合同
  • 网站企划设计公司一个网站的优化怎么做
  • 网站设计建设制作百度投放广告收费标准
  • 休闲农庄网站做电商哪几个设计网站比较好
  • 陕西网站制作公司排名保定免费网站建站模板
  • 常熟公司做网站网络营销的理念
  • 佛山网站建设优化企业河源哪里做网站
  • 移动网站怎么做优化北京网站案例
  • 建设银行网站缺点网站的设计 改版 更新