网络中的网络(NiN) 讨论区


#1

http://zh.diveintodeeplearning.org/chapter_convolutional-neural-networks/nin.html


#2


请问这是什么情况


#3

要更新一下mxnet


#4

ok,谢谢。


于置顶 #5

#6

《从0开始的卷积神经网络 讨论区》17楼继续延展


data: (batch_size, channel, height, width)
weight:(output_channels , in_channels, height, width)

原文中,有“当输入数据有多个通道的时候,每个通道会有对应的权重,然后会对每个通道做卷积之后在通道之间求和

这里的in_channels与channel保持一致;原因是当data有多个channel时,需要相应个数的filter来对应每个channel(每个通道会有对应的权重),卷积求和之后结果生成一个feature map(所以往往由输入端来自动确认in_channels的大小,gluon里conv层不用设置)。

而output_channels则控制着filter的个数(我之前误解一组filter为下图[0~3],其实应该为[0~7]),或者说生成的feature map的个数。这样理解下来:如下图所示,data2个通道,我们的一组filter对应一分为二,卷积之后求和合二为一;如果filter_num设置为两个(output_channels=2),则二分为四,但前二和后二彼此独立,分别生成各自的feature map。

如果这时候设置kernel_size大小为1x1,则可以实现多个feature map的线性组合,实现跨通道的信息整合的功效,这也是mlpconv的由来,它将传统的conv中特征的“单层”线性升级为非线性的“多层”抽象表达,类比于在conv层中实现从单层感知机到多层感知机的变换。

而恰好设置kernel_size大小为1x1,可以满足这个目的:实现多个feature map的线性组合这一功效。原因如下图:

经过第一层时,只是单纯的生成各自的feature map:f1,f2。第二次后,f1和f2作为input,在kernel1x1的作用下,可以认为f1和f2线性组合成f3,注意这里是线性组合。f4的生成雷同。


otherwise:

1.NIN两大特性:

  • mlpconv
  • 平均池化层

2.由此,引发出1x1卷积核的作用:

  • 实现跨通道的交互和信息整合
  • 进行卷积核通道数的降维和升维,减少网络参数

#7

请问这里应该如何更新 mxnet-cu80


#8

我现在的版本是mxnet-cu80 0.11.0


#9

source activate gluon之后用pip install -U --pre mxnet-cu80


#10

赞赞赞赞


#11

卡兄,这一章练习“为什么mlpconv里面要有两个1×1卷积”你认为原因是啥?

:joy:我咋回头看看,我的想法是:如果只有一个只是类似于单层的感知机,而至少两层才达到mlp?


#12

我觉得还是降维吧,就像你上面画的f3和f4再进行降维形成f5。实际情况有可能input channels通道比较大,需要多次降维。这是我的理解。


#13

写了个LaTeX版本。。。。。。


#14

您说得太好了。

其实我一直迷惑:之前看各种资料,1×1卷积第一印象的作用是发挥channel之间的线性组合。

但是在NIN中,毕竟在传统的conv后面,这样一层1 x 1的conv即可。

第二层1 x 1的conv的作用您说的是:“实现了对输入的数据进行高度的非线性变换的目的”。

这样一想,或许可以说得通。

不过,最后“作者最大的贡献”应该是指对于NIN这个网络本身吧。对于后续的网络版本中,我的的确确是感觉1 x 1 conv这个trick发挥了更大的作用。

还在努力补充知识中,向您学习!:joy:


#15

此例程的代码不收敛啊?

('Start training on ', gpu(0))
Epoch 0. Loss: 2.303, Train acc 0.10, Test acc 0.10, Time 404.1 sec

#16

跟alexnet例程一样, resize为224就会出问题, 训练数据都为0, 无法学习


#17

我的笔记本i7 显卡gtx1070内存16G,这个例子在电脑上跑,直接内存爆了,nie-gluon的这个例子要求很高的内存吗


#18

这里用绿圈圈出来的的output不应该是f1 f2吧 应该是f3 f4


#19

我也是8G内存直接爆掉 , 显卡都还没开始跑就报错了


#20

同样。AlextNet和VGG都跑不了。不知道是不是硬件不够?