关于ndarray.Convolution和ndarray.Pooling的channels_{first,last}问题

从0开始的卷积神经网络 讨论区 继续讨论:

谢谢沐神的课程,

在看到第三讲时, 关于用ndarray实现卷积网络, 遇到了channels first or last的问题.

因为通过gluon.data.vision.FashionMNIST读取的数据是 channels_last的,

但是ndarray.Convolution和ndarray.Pooling的默认处理方式是 channels_first的.

然后查看了一下ndarray.Convolution的文档, 可以通过layout参数来控制channels first or last.

但是ndarray.Pooling并不支持layout参数,

那么意味着就算把ndarray.Convolution改成channels_last之后, 也没有对应的ndarray.Pooling可用.

是否需要把ndarray.Pooling也添加对应的layout参数?

谢谢.

pooling前把数据转置一下试试,比如忽略batch_size那一维的话:data = nd.transpose(data, (2,0,1)),把通道这一维提到最前

是的, 我的做法是在DataLoader的transform上面reshape一下也是可以的.

只是有点好奇ndarray.Convolution提供的layout参数是否还有别的作用是我不知道的.