在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);