精华内容
下载资源
问答
  • CNN模型

    千次阅读 2015-07-22 21:47:38
    1.卷积神经网络(Convolutional Neural Network,CNN)是一种处理大型图像的深度神经网络模型,主要由卷积层以及下采样层组成; 2.卷积层的理论依据主要是生物学上的感受野概念,通俗点讲就是权值共享,这样可以大大...

    (一)简介

    1.卷积神经网络(Convolutional Neural Network,CNN)是一种处理大型图像的深度神经网络模型,主要由卷积层以及下采样层组成;

    2.卷积层的理论依据主要是生物学上的感受野概念,通俗点讲就是权值共享,这样可以大大减少神经网络需要训练的参数;

    3.下采样,也有人叫pooling,其实就是对图像进行子采样,利用图像局部相关性的原理,在减少数据量的同时又保留有用信息;

    (二)原理讲解


    1.首先简化问题原型,我们假设输入一张原始图像(M*M),只使用一个卷积核(N*N),对原始图像进行一次间隔为1的卷积,得到的图像称为feature map,规格为(M-N+1)*(M-N+1);接着进行下采样或者说pooling,无重叠采样间隔为 t ,得到最终的输出图像[(M-N+1)/ t ]*[(M-N+1)/ t ];

    2.卷积核是CNN的重要组成,常见做法是从原始图像中采样,基于无监督学习算法进行训练得到,这一步就是DNN中的预训练;

    3.卷积运算:


    卷积过程如上图所示,记卷积核为W,卷积区域为X,那么每一个卷积区域的运算如下:


    其中f 是神经网络中常见的激活函数;

    4.下采样(pooling):


    常见的pooling有max跟mean,就是对每一个采样区域做max运算或者mean运算,既可以减少参数,又可以保留信息,与此同时,还引入平移不变性等图像性质;

    5.实际应用中的CNN都是由多个卷积层以及下采样层组成的,具体的模型可以见下面一个例子;

    (三)CNNs模型


    1.输入图像是32*32的大小,C1层是卷积层,卷积核的大小是5*5的,共有6个卷积核,经过第一层的卷积之后得到6张28*28的feature map;

    2.S2层是一个下采样层,简单的说,由4个点下采样为1个点,也就是4个数的加权平均;在斯坦福关于深度学习的教程中,这个过程叫做pool;

    3.C3层是一个卷积层,卷积核的大小为5*5,输入是6张14*14的map,经过C3卷积后得到16张的10*10的map;卷积不仅可以在空间维度进行,也可以在时间维度进行,以下是一种常见的卷积策略:


    对输入的第0,1,2共3张14*14的map分别进行卷积后再组合起来,得到新的一张10*10的map,以此类推,总共得到16张10*10的map;

    4.S4层与S2层一样,最终得到16张5*5的map;

    5.后面几层均为全连层,较为简单,这里不详述;

    (四)基于CNN的BP算法



    PS:参考文献

    Notes on Convolutional Neural Networks

    展开全文
  • 基于MATLAB的CNN模型训练部分代码实现基于MATLAB的CNN模型训练部分代码实现
  • CNN模型火速替代了传统人工设计(hand-crafted)特征和分类器,不仅提供了一种端到端的处理方法,还大幅度地刷新了各个图像竞赛任务的精度,更甚者超越了人眼的精度(LFW人脸识别任务)。CNN模型在不断逼近计算机...
  • 热门CNN模型整理

    千次阅读 2019-05-19 22:22:54
    pytorch实现的CNN模型 https://github.com/BIGBALLON/CIFAR-ZOO 1.LENET https://my.oschina.net/u/876354/blog/1632862 个人总结: 都是经典的操作,卷积,池化,卷积,池化,卷积,全连接,全连接。特别的...

    pytorch实现的CNN模型

    https://github.com/BIGBALLON/CIFAR-ZOO

    1.LENET

    https://my.oschina.net/u/876354/blog/1632862

    个人总结:

    都是经典的操作,卷积,池化,卷积,池化,卷积,全连接,全连接。特别的就是C3的卷积不是连接所有channel,这边的池化也是带两个参数w,b的。

    2.ALEXNET

    https://my.oschina.net/u/876354/blog/1633143

    010626_frBK_876354.png

    个人总结:

    1.ReLU:相较Sigmoid和tanh,不容易出现梯度弥散或梯度饱和,而且ReLU计算快很多。但是ReLU有一半是没有梯度的,会出现模型出现梯度没有变化的情况,模型不收敛。

    2.Dropout:防过拟合。

    3.Data augmentation:水平翻转图像,从原始图像中随机裁剪、平移变换,颜色、光照变换。

    直接粘一下上面博客的内容:第三点之前没有尝试过,感觉可以试一下。

    (1)随机裁剪,对256×256的图片进行随机裁剪到224×224,然后进行水平翻转,相当于将样本数量增加了((256-224)^2)×2=2048倍;
    (2)测试的时候,对左上、右上、左下、右下、中间分别做了5次裁剪,然后翻转,共10个裁剪,之后对结果求平均。作者说,如果不做随机裁剪,大网络基本上都过拟合;
    (3)对RGB空间做PCA(主成分分析),然后对主成分做一个(0, 0.1)的高斯扰动,也就是对颜色、光照作变换,结果使错误率又下降了1%。

    4.重叠池化。

    5.多GPU训练(看图上下两块对应两块GPU)。

    6.LRN归一化,局部归一化,因为RELU的关系。

    3.VGG

    https://my.oschina.net/u/876354/blog/1637819

    ä¸æ读æVGGç½ç»

    两个3x3代替5X5,3个3X3代替7X7。最后用了3个FC,导致参数太多。

    4.GoogLeNet(inception)

    V1

    网络最后采用了average pooling(平均池化)来代替全连接。

    为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度(辅助分类器)。辅助分类器是将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中,这样相当于做了模型融合,同时给网络增加了反向传播的梯度信号,也提供了额外的正则化,对于整个网络的训练很有裨益。而在实际测试的时候,这两个额外的softmax会被去掉。

    V2

    1)卷积分解(Factorizing Convolutions):多个3X3代替 5X5 7X7

    2)降低特征图大小
    一般情况下,如果想让图像缩小,可以有如下两种方式:
    先池化再作Inception卷积,或者先作Inception卷积再作池化先作pooling(池化)会导致特征表示遇到瓶颈(特征缺失),方法二是正常的缩小,但计算量很大。为了同时保持特征表示且降低计算量,将网络结构改为下图,使用两个并行化的模块来降低计算量(卷积、池化并行执行,再进行合并)

    3)Inception v2主要就是在Inception v1地基础上,把LRN扔了,然后加了Batch Normalization,训练快很多,效果也好一点

    V3
    Inception V3一个最重要的改进是分解(Factorization),将7x7分解成两个一维的卷积(1x7,7x1),3x3也是一样(1x3,3x1),这样的好处,既可以加速计算,又可以将1个卷积拆成2个卷积,使得网络深度进一步增加,增加了网络的非线性(每增加一层都要进行ReLU)。
    另外,网络输入从224x224变为了299x299。

    V4

    Inception V4研究了Inception模块与残差连接的结合。ResNet结构大大地加深了网络深度,还极大地提升了训练速度,同时性能也有提升。

    5.RESNET

    加了个shortcut,更快的传递低层的特征,使得网络可以训练得更深,基本每个conv后面都加了个bn。

    è¿éåå¾çæè¿°

    6.Preresnet

    preResNet ResNet的改进。preResNet整了residual模块中各层的顺序。相比经典residual模块(a),(b)将BN共享会更加影响信息的短路传播,使网络更难训练、性能也更差;(c)直接将ReLU移到BN后会使该分支的输出始终非负,使网络表示能力下降;(d)将ReLU提前解决了(e)的非负问题,但ReLU无法享受BN的效果;(e)将ReLU和BN都提前解决了(d)的问题。preResNet的短路连接(e)能更加直接的传递信息,进而取得了比ResNet更好的性能。(http://www.sohu.com/a/218579545_473283)

    7.Resnext

    è¿éåå¾çæè¿°

    split-transform-merge

    作者在论文中引入了一个叫作「基数」(cardinality)的超参数,指独立路径的数量,这提供了一种调整模型容量的新思路。实验表明,通过扩大基数值(而不是深度或宽度),准确率得到了高效提升。作者表示,与 Inception 相比,这个全新的架构更容易适应新的数据集或任务,因为它只有一个简单的范式和一个需要调整的超参数,而 Inception 需要调整很多超参数(比如每个路径的卷积层内核大小)。

    8.DenseNet

    Each layer has direct access to the gradients from the loss function and the original input signal, leading to an implicit deep supervision.

    è¿éåå¾çæè¿°

    è¿éåå¾çæè¿°

    è¿éåå¾çæè¿°

    8.SENet

    SE block可以作为一个单元加入到其他网络中。分支中,先是Fsq做了一次average pooling,得到1X1XC的特征图,然后Fex做了两次全连接,因为从C到C参数量是C**2,如果中间加一层C/r的话,参数就是C**2*2/r,一般r取16,就会减少很多参数。

    9.GENet: Gather-Excite: Exploiting Feature Context in Convolutional Neural Networks

    https://zhuanlan.zhihu.com/p/50718160

    SENet的一般形式。

    Gather operator 本质上就是在输入x上进行卷积或者池化操作生成维度减小的feature map。

    Excite operator将输入feature map x 经过 \xi_{G} 之后得到的 \hat{x} ,然后使用Nearest Neighbor interpolation(最近邻插值方法)resize到 x 相同shape,经过 sigmoid 后做点积运算。

    To be continued。。。

    sknet bam cbam

    展开全文
  • CNN模型搭建

    万次阅读 2020-12-08 11:03:54
    # 编译模型 # loss:损失函数,metrics:对应性能评估函数 model.compile(optimizer=optimizer, loss = 'categorical_crossentropy', metrics=['accuracy']) model.fit(train_x, train_y, batch_size=10 ,epochs= 15,...
    def train_model(train_x, train_y, test_x, test_y, val_x, val_y):
    
        model = Sequential()
        # 第一个卷积层,32个卷积核,大小5x5,卷积模式SAME,激活函数relu,输入张量的大小
        model.add(Conv2D(filters= 32, kernel_size=(5,5), padding='Same', activation='relu',input_shape=(224, 224, 3))) #图片大小224*224,通道数为3
        model.add(Conv2D(filters= 32, kernel_size=(5,5), padding='Same', activation='relu'))
        # 池化层,池化核大小2x2
        model.add(MaxPool2D(pool_size=(2,2)))
        # 随机丢弃四分之一的网络连接,防止过拟合
        model.add(Dropout(0.25))
        model.add(Conv2D(filters= 64, kernel_size=(3,3), padding='Same', activation='relu'))
        model.add(Conv2D(filters= 64, kernel_size=(3,3), padding='Same', activation='relu'))
        model.add(MaxPool2D(pool_size=(2,2), strides=(2,2)))
        model.add(Dropout(0.25))
        # 全连接层,展开操作,
        model.add(Flatten())
        # 添加隐藏层神经元的数量和激活函数
        model.add(Dense(256, activation='relu'))
        model.add(Dropout(0.25))
        # 输出层
        model.add(Dense(2, activation='sigmoid'))
    
        # 设置优化器
        # lr :学习效率, decay :lr的衰减值
        optimizer = adam(lr = 0.001, decay=0.0)
    
        # 编译模型
        # loss:损失函数,metrics:对应性能评估函数
        model.compile(optimizer=optimizer, loss = 'categorical_crossentropy', metrics=['accuracy'])
    
        model.fit(train_x, train_y, batch_size=10 ,epochs= 15, validation_data = (val_x, val_y), verbose =1)

     

     

    展开全文
  • 人脸识别CNN,人脸识别cnn模型,matlab源码
  • CNN模型之MobileNet

    千次阅读 2017-12-05 00:00:00
    作者: 叶虎 编辑:王...图1为近几年来CNN在ImageNet竞赛的表现,可以看到为了追求分类准确度,模型深度越来越深,模型复杂度也越来越高,如深度残差网络(ResNet)其层数已经多达152层。图0 CNN在ImageNet上的表现

    作者:  叶虎  

         编辑:王抒伟




      本文6500字30图,阅读约。。。分钟  


    算了

    爱看多久看多久







    引言

    卷积神经网络(CNN)已经普遍应用在计算机视觉领域,并且已经取得了不错的效果。图1为近几年来CNNImageNet竞赛的表现,可以看到为了追求分类准确度,模型深度越来越深,模型复杂度也越来越高,如深度残差网络(ResNet)其层数已经多达152层。



    图0 CNNImageNet上的表现(来源:CVPR2017

     

    However,在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型是难以被应用的。


    首先是模型过于庞大,面临着内存不足的问题,其次这些场景要求低延迟,或者说响应速度要快,想象一下自动驾驶汽车的行人检测系统如果速度很慢会发生什么可怕的事情。


    所以,研究小而高效的CNN模型在这些场景至关重要,至少目前是这样,尽管未来硬件也会越来越快。


    目前的研究总结来看分为两个方向:一是对训练好的复杂模型进行压缩得到小模型;二是直接设计小模型并进行训练。不管如何,其目标在保持模型性能(accuracy)的前提下降低模型大小(parameterssize),同时提升模型速度(speed, low latency)。


    本文的主角MobileNet属于后者,其是Google最近提出的一种小巧而高效的CNN模型,其在accuracy和latency之间做了折中。


    下面对MobileNet做详细的介绍。






    Depthwise separable convolution:


    MobileNet的基本单元是深度级可分离卷积(depthwise separable convolution---DSC),其实这种结构之前已经被使用在Inception模型中。


    深度级可分离卷积其实是一种可分解卷积操作(factorized convolutions),其可以分解为两个更小的操作:

    depthwise convolution和pointwise convolution


    如图1所示: Depthwise convolution和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而depthwise convolution针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说depthwise convolution是depth级别的操作。


    而pointwise convolution其实就是普通的卷积,只不过其采用1x1的卷积核。图2中更清晰地展示了两种操作。


    对于DSC,其首先是采用depthwise convolution对不同输入通道分别进行卷积,然后采用pointwise convolution将上面的输出再进行结合,这样其实整体效果和一个标准卷积是差不多的,但是会大大减少计算量和模型参数量。

    1 Depthwise separable convolution


    2 Depthwise convolutionpointwiseconvolution


    这里简单分析一下depthwise separable convolution在计算量上与标准卷积的差别。

    假定输入特征图大小是: D(F)*D(F)*M 

    而输出特征图大小是:D(F)*D(F)*N

    这是假定两者是相同的,M、N 指的是通道数(channels or depth

    这里也假定输入与输出特征图大小(width and height)是一致的

    采用的卷积核大小D(K)*D(K) 尽管是特例,但是不影响下面分析的一般性。

    其中D(F)是特征图的width和height,(F下标,微信不能编辑公式,好气哦)


    对于标准的卷积,其计算量将是:D(K)、D(K)、M、N、D(F)、D(F)

    而对于depthwise convolution其计算量为: D(K)、D(K)、MD(F)、D(F)

    对于 pointwise convolution计算量是:M、N、D(F)、D(F)


    所以depthwise separable convolution总计算量是:

        D(K)、D(K)、MD(F)、D(F) + M、N、D(F)、D(F)

    可以比较depthwise separable convolution和标准卷积如下:


    一般情况下比较大,那么如果采用3x3卷积核的话,depthwise separable convolution相较标准卷积可以降低大约9倍的计算量。其实,后面会有对比,参数量也会减少很多。





    MobileNet的一般结构


    前面讲述了depthwise separable convolution,这是MobileNet的基本组件,但是在真正应用中会加入batchnorm,并使用ReLU激活函数,所以depthwise separable convolution的基本结构如图3所示。

    3 加入BNReLUdepthwiseseparable convolution

    1 MobileNet的网络结构

    MobileNet的网络结构如表1所示。

    首先是一个3x3的标准卷积,然后后面就是堆积depthwise separable convolution,并且可以看到其中的部分depthwise convolution会通过strides=2进行downsampling。


    然后采用average pooling将feature变成1x1,根据预测类别大小加上全连接层,最后是一个softmax层。


    如果单独计算depthwise convolution和pointwise convolution,整个网络有28层(这里Avg Pool和Softmax不计算在内)。


    我们还可以分析整个网络的参数和计算量分布,如表2所示。可以看到整个计算量基本集中在1x1卷积上。


    如果你熟悉卷积底层实现的话,你应该知道卷积一般通过一种im2col方式实现,其需要内存重组,但是当卷积核为1x1时,其实就不需要这种操作了,底层可以有更快的实现。对于参数也主要集中在1x1卷积,除此之外还有就是全连接层占了一部分参数。




    2 MobileNet网络的计算与参数分布


    3 MobileNetGoogleNetVGG16性能对比






    MobileNet 瘦身:

    前面说的MobileNet的基准模型,但是有时候你需要更小的模型,那么就要对MobileNet瘦身了。这里引入了两个超参数:width multiplier和resolution multiplier。第一个参数width multiplier主要是按比例减少通道数,该参数记为,其取值范围为(0,1],那么输入与输出通道数将变成 和,对于depthwiseseparable convolution,其计算量变为:

    因为主要计算量在后一项,所以width multiplier可以按照 Alpha^2 比例降低计算量,其是参数量也会下降。

    第二个参数resolution multiplier主要是按比例降低特征图的大小,记为 Rho,比如原来输入特征图是224*224,可以减少为192*192,加上resolution multiplier,depthwiseseparable convolution的计算量为:

    要说明的是,resolution multiplier仅仅影响计算量,但是不改变参数量。

    引入两个参数会给肯定会降低MobileNet的性能,具体实验分析可以见paper,总结来看是在accuracy和computation,以及accuracy和model size之间做折中。





    MobileNet 的TensorFlow实现:

    TensorFlow的nn库有depthwise convolution算子tf.nn.depthwise_conv2d,所以MobileNet很容易在TensorFlow上实现:

    class MobileNet(object):
       def __init__(self, inputs, num_classes=1000, is_training=True,
                    width_multiplier=1, scope="MobileNet")
    :

           """
           The implement of MobileNet(ref:https://arxiv.org/abs/1704.04861)
           :param inputs: 4-D Tensor of [batch_size, height, width, channels]
           :param num_classes: number of classes
           :param is_training: Boolean, whether or not the model is training
           :param width_multiplier: float, controls the size of model
           :param scope: Optional scope for variables
           """

           self.inputs = inputs
           self.num_classes = num_classes
           self.is_training = is_training
           self.width_multiplier = width_multiplier

           # construct model
           with tf.variable_scope(scope):
               # conv1
               net = conv2d(inputs, "conv_1", round(32 * width_multiplier), filter_size=3,
                            strides=2)  # ->[N, 112, 112, 32]
               net = tf.nn.relu(bacthnorm(net, "conv_1/bn", is_training=self.is_training))
               net = self._depthwise_separable_conv2d(net, 64, self.width_multiplier,
                                   "ds_conv_2") # ->[N, 112, 112, 64]
               net = self._depthwise_separable_conv2d(net, 128, self.width_multiplier,
                                   "ds_conv_3", downsample=True) # ->[N, 56, 56, 128]
               net = self._depthwise_separable_conv2d(net, 128, self.width_multiplier,
                                   "ds_conv_4") # ->[N, 56, 56, 128]
               net = self._depthwise_separable_conv2d(net, 256, self.width_multiplier,
                                   "ds_conv_5", downsample=True) # ->[N, 28, 28, 256]
               net = self._depthwise_separable_conv2d(net, 256, self.width_multiplier,
                                   "ds_conv_6") # ->[N, 28, 28, 256]
               net = self._depthwise_separable_conv2d(net, 512, self.width_multiplier,
                                   "ds_conv_7", downsample=True) # ->[N, 14, 14, 512]
               net = self._depthwise_separable_conv2d(net, 512, self.width_multiplier,
                                   "ds_conv_8") # ->[N, 14, 14, 512]
               net = self._depthwise_separable_conv2d(net, 512, self.width_multiplier,
                                   "ds_conv_9")  # ->[N, 14, 14, 512]
               net = self._depthwise_separable_conv2d(net, 512, self.width_multiplier,
                                   "ds_conv_10")  # ->[N, 14, 14, 512]
               net = self._depthwise_separable_conv2d(net, 512, self.width_multiplier,
                                   "ds_conv_11")  # ->[N, 14, 14, 512]
               net = self._depthwise_separable_conv2d(net, 512, self.width_multiplier,
                                   "ds_conv_12")  # ->[N, 14, 14, 512]
               net = self._depthwise_separable_conv2d(net, 1024, self.width_multiplier,
                                   "ds_conv_13", downsample=True) # ->[N, 7, 7, 1024]
               net = self._depthwise_separable_conv2d(net, 1024, self.width_multiplier,
                                   "ds_conv_14") # ->[N, 7, 7, 1024]
               net = avg_pool(net, 7, "avg_pool_15")
               net = tf.squeeze(net, [1, 2], name="SpatialSqueeze")
               self.logits = fc(net, self.num_classes, "fc_16")
               self.predictions = tf.nn.softmax(self.logits)

       def _depthwise_separable_conv2d(self, inputs, num_filters, width_multiplier,
                                       scope, downsample=False)
    :

           """depthwise separable convolution 2D function"""
           num_filters = round(num_filters * width_multiplier)
           strides = 2 if downsample else 1

           with tf.variable_scope(scope):
               # depthwise conv2d
               dw_conv = depthwise_conv2d(inputs, "depthwise_conv", strides=strides)
               # batchnorm
               bn = bacthnorm(dw_conv, "dw_bn", is_training=self.is_training)
               # relu
               relu = tf.nn.relu(bn)
               # pointwise conv2d (1x1)
               pw_conv = conv2d(relu, "pointwise_conv", num_filters)
               # bn
               bn = bacthnorm(pw_conv, "pw_bn", is_training=self.is_training)
               return tf.nn.relu(bn)



    完整实现可以参见GitHub(https://github.com/xiaohu2015/DeepLearning_tutorials/)


    总结  


    本文简单介绍了Google提出的移动端模型MobileNet,其核心是采用了可分解的depthwise separable convolution,其不仅可以降低模型计算复杂度,而且可以大大降低模型大小。在真实的移动端应用场景,像MobileNet这样类似的网络将是持续研究的重点。后面我们会介绍其他的移动端CNN模型


    参考资料

    1. MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications: https://arxiv.org/abs/1704.04861.






    PS:

    如果你懂一些ANN相关知识,更好喔,如果你不懂,留言给小编,小编给你好好打一下基础。





    多谢大家支持公众号


    关于本文CNN相关知识和其他问题

    欢迎大家加群在群中探讨

    欢迎留言或赞赏。





    阅 


    1. 从AlexNet剖析-卷积网络CNN的一般结构

    2. 趣谈深度学习核心----激活函数

    3. 深入浅出解读卷积神经网络

    4. Object Detection系列(二) SPP-Net





    扫描燕哥微信号

    拉你进机器学习大牛群。

    福利满满,名额已不多…


    目前80%的AI从业者已关注我们微信公众号

           

           





    展开全文
  • cifar10_cnn 模型文件

    2017-12-11 10:05:23
    TFlearn 中的模型复用, FineTuning,Cifar0_cnn训练后的模型文件,可以直接load之后,继续训练
  • CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skipconnection),这有助于训练...
  • 一些常见的CNN模型

    千次阅读 2020-02-24 21:56:33
    最近闲着无聊在家学习一些基本的CNN模型,这里做一个简要的总结,供自己学习使用。 一、VGG ​ VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。...
  • cnn模型参数调整

    千次阅读 2020-05-05 11:10:12
    1、卷积核 卷积核的大小 根据7×7与3×3卷积核loss值的对比可以发现, 在初始阶段卷积核较大时准确率更低,因为卷积核越 大每一次训练时丢弃的特征值越多。但是,随着训练 次数的增加,卷积核较大的实验最终达到...
  • 包含age_net.caffemodel、deploy_age.prototxt、deploy_gender.prototxt、gender_net.caffemodel、haarcascade_frontalface_alt_tree.xml文件和...具体实现效果见CSDN博客“DNN系列6_CNN模型预测性别与年龄”查看效果
  • 在本项目中,将会用Keras来搭建一个稍微复杂的CNN模型来破解以上的验证码。验证码如下:  利用Keras可以快速方便地搭建CNN模型,本项目搭建的CNN模型如下: 将数据集分为训练集和测试集,占比为8:2,该模型训练...
  • 用深度学习来做人脸识别(CNN),包含完整步骤并可以在matlab平台运行
  • 基于SoC+FPGA和CNN模型的动作识别系统设计
  • 继续前面关于深度学习CNN经典模型的整理,之前介绍了CNN网络Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning(点击查看)的网络结构。本文讲一下最新由UC Berkeley和Stanford研究人员一起完成的SqueezeNet[1]...
  • 经典CNN模型整理

    千次阅读 2016-10-20 11:02:29
    关于卷积神经网络CNN,网络和文献中有非常多的资料,我在工作/研究中也用了好一段时间各种常见的model了,就想着简单整理一下,以备查阅之需。如果读者是初接触CNN,建议可以先看一看“Deep Learning(深度学习)...
  • CNN模型与MNIST数据集 将CNN模型与MNIST数据集一起应用
  • CNN模型压缩方案

    千次阅读 2017-08-12 15:08:11
    本文主要总结近年来CNN模型压缩方案 在2016年SqueezeNet这篇文章中,作者总结模型设计三个原则 –(1)使用1*1网络代替3*3网络 •替换3x3的卷积kernel为1x1的卷积kernel可以让参数缩小9X为了不影响识别精度,并不...
  • 用Keras来搭建一个稍微复杂的CNN模型来破解以上的验证码
  • CNN 模型压缩与加速算法总结

    千次阅读 2018-08-16 15:16:05
    导语:卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,CNN模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。 前言 自从AlexNet一举夺得ILSVRC 2012 ImageNet图像...
  • Midas-Task-2 建立CNN模型
  • Mask R-CNN模型:Kaggle Airbus Ship Detection数据集训练
  • 用 Keynote 绘制 CNN 模型示意图

    万次阅读 2016-12-22 10:39:44
    在论文中经常看到一些 CNN 模型示意图,例如下面这个经典的 LeNet-5 :很多写论文的同学会问,该怎么画这些图?常用的绘图工具例如 Visio 肯定是可以的,用熟了几乎可以绘制任何需要的图。可惜我用的 Mac,自带的 ...
  • 你必须要知道CNN模型:ResNet

    万次阅读 多人点赞 2017-12-18 00:00:00
    作者:叶 虎编辑:张 欢PART01 ResNet简介引言深度残差网络(Deep residual network, ResNet)的提出是CNN图像史上的一件里程碑事件,让我们先看一下ResNet在...并又一次刷新了CNN模型在ImageNet上的历史:图2 Imag
  • 继续前面关于深度学习CNN经典模型的整理,之前介绍了CNN网络Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning(点击查看)的网络结构。 本文讲一下最新由UC Berkeley和Stanford研究人员一起完成的S
  • 设计实现基于SoC FPGA和CNN模型的动作识别系统。设计实现流水线型LK光流计算、基于HOG与SVM的行人检测模块;设计实现动态行人检测与静态行人检测结果的融合算法,计算出目标人物所在区域;利用该区域的视频图像和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,337
精华内容 42,534
关键字:

最新cnn模型