zoukankan      html  css  js  c++  java
  • cuda-convnet 卷积神经网络 一般性结构卷积核个数 和 输入输出的关系以及输入输出的个数的说明:

    卷积神经网络 一般性结构卷积核个数和 输入输出的关系以及输入输出的个数的说明:

    以cifar-10为例:

    Initialized data layer 'data', producing3072 outputs
    Initialized data layer 'labels', producing1 outputs
    Initialized convolutional layer 'conv1',producing 32x32 64-channel output
    Initialized max-pooling layer 'pool1',producing 16x16 64-channel output
    Initialized cross-mapresponse-normalization layer 'rnorm1', producing 16x16 64-channel output
    Initialized convolutional layer 'conv2',producing 16x16 64-channel output
    Initialized cross-map response-normalizationlayer 'rnorm2', producing 16x16 64-channel output
    Initialized max-pooling layer 'pool2',producing 8x8 64-channel output
    Initialized locally-connected layer'local3', producing 8x8 64-channel output
    Initialized locally-connected layer'local4', producing 8x8 32-channel output
    Initialized fully-connected layer 'fc10',producing 10 outputs
    Initialized softmax layer 'probs',producing 10 outputs
    Initialized logistic regression cost'logprob'
    Initialized neuron layer 'conv1_neuron',producing 65536 outputs
    Initialized neuron layer 'conv2_neuron',producing 16384 outputs
    Initialized neuron layer 'local3_neuron',producing 4096 outputs
    Initialized neuron layer 'local4_neuron',producing 2048 outputs


    1、卷积说明:

    输入是3个32*32, 共3*1024=3072。每条边padding为2,则内存里实际为3个36*36.

    卷积核个数是3维的5*5分别与3个输入进行卷积运算,得到3维的32*32的输出,这里将3维的32*32相应位相加得到一张32*32的feature Map

    假设有64个3维的5*5卷积核就有64张feature Map

    详细过程图示为:

    卷积的权值存取方式为:

    第一个5*5作用于第一张输入全图,

    第二个5*5作用于第二张输入全图,

    第三个5*5作用于第三张输入全图,

    再把这三个相应位置相加,在加上biases,得到第一张feature map

    最后64个5*5*3反复上面的过程,得到64个featuremap

    这里weights有3*5*5*64个,biases有64个.

    这里输入是3 输出是64,卷积核是5*5权值个数是64* 5*5*3




    2、local层说明:

    输入是8x8  64-channel output 。每条边padding为1,则内存里实际为64个10*10.

    卷积核个数是8*8个的3*3的卷积核分别与单一的一个输入相应位置卷积,得到1个8*8的中间输出O1。这里将8*8个的3*3作用于单一单张输入O1的卷积核组称为A。

    如今64维的A分别作用于64个输入,将得到64个中间输出O2(就是64个O1),这里将64维的O2相应位相加得到一张8*8的feature Map。这里将64维的A称作B。

    假设有64个B就有64张feature Map,就是终于的输出。

     

    Local层和conv层的差别就在于local的单一输入的feature Map不共享卷积核。而conv是共享卷积核的,所以local比conv多了在单一输入的卷积核。

    权值存取方式说明:

    每一列是64*3*3*8*8=36864;将一列分成64份:每一份就是64*3*3.一份相应输出的一个pixel.

    前64*3*3个权值怎么计算的呢:

    64个3*3与64个输入的左上角3*3分别卷积,就是第一个3*3与第一个输入的左上角卷积,第二个3*3与第二个输入的左上角卷积,。。。得到64个值,然后这64个值相加再加biases就是第一个输出的左上角的值.


  • 相关阅读:
    CentOS6.8下安装Docker
    xshell连接Linux(centos6.8)失败的解决方法
    Windows Server定时执行bat
    [译]看漫画学Flux
    LeetCode题型分类及索引
    LeetCode & Q38-Count and Say-Easy
    LeetCode & Q20-Valid Parentheses-Easy
    LeetCode & Q14-Longest Common Prefix-Easy
    LeetCode & Q13-Roman to Integer-Easy
    LeetCode & Q28-Implement strStr-Easy
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3800623.html
Copyright © 2011-2022 走看看