mal*_*oro 19 convolution neural-network theano
这些链接的理论表明,卷积网络的顺序是:Convolutional Layer - Non-linear Activation - Pooling Layer.
但是,在这些网站的最后一次实施中,它说订单是: Convolutional Layer - Pooling Layer - Non-linear Activation
我也尝试过探索Conv2D操作语法,但是没有激活函数,它只是与翻转内核的卷积.有人可以帮我解释为什么会这样吗?
eic*_*erg 27
那么,max-pooling和monotonely增加的非线性通勤,因此在这种情况下结果是相同的.因此,最好先通过max-pooling进行子采样,然后应用非线性(如果成本很高,例如sigmoid).
至于conv2D,它并没有翻转的内核.它完全实现了卷积的定义.这是一个线性操作,因此您必须在下一步中自己添加非线性,例如theano.tensor.nnet.relu.
Sal*_*ali 13
在人们使用的许多论文中conv -> pooling -> non-linearity.这并不意味着您不能使用其他订单并获得合理的结果.在max-pooling layer和ReLU的情况下,顺序无关紧要(两者都计算相同的事情):
您可以通过记住ReLU是元素操作和非递减函数来证明这种情况
几乎每个激活函数都会发生同样的事情(大多数都是非递减函数).但是对于一般的池化层(平均池)不起作用.
尽管如此,两个订单产生相同的结果,Activation(MaxPool(x))通过减少操作量来显着加快.对于大小的池化层k,它使用k^2较少的激活函数调用次数.
遗憾的是,这种优化对CNN来说可以忽略不计,因为大部分时间用于卷积层.