在GitHub上搜到的大都是TF或者Pytroch的,csdn也是,但是自己习惯用Matlab,而Matlab和pytorch的语法又不一样,在神经网络的搭建上面其实主要在维度上,这里直接给出复现的代码。
如图,论文中的输入是C x T的原始脑电,在Matlab的预处理中,变换为C x T x 1 x num,num是脑电信号的个数,然后从norm层开始,且忽略掉tranpose层(这里便是因为torch中的num是在第一维度的,而Matlab在最后一维),网络层的代码如下:
- %% 搭建网络
- layers = [ ...
- imageInputLayer(size(x,[1 2 3]))
-
- batchNormalizationLayer;
- % transposeLayer;
- dropoutLayer(0.25);
-
- convolution2dLayer([2 32],4)
- batchNormalizationLayer;
- maxPooling2dLayer([2 4]);
- dropoutLayer(0.25);
-
- convolution2dLayer([8 4],4)
- batchNormalizationLayer;
- maxPooling2dLayer([2 4]);
- dropoutLayer(0.25);
-
- fullyConnectedLayer(2)
- softmaxLayer
- classificationLayer];
- analyzeNetwork(layers);
-