convolution2dLayer([4 1],8,'Padding','same')
maxPooling2dLayer([2 1],'Stride',2)
convolution2dLayer([4 1],16,'Padding','same')
maxPooling2dLayer([2 1],'Stride',2)
convolution2dLayer([4 1],4,'Padding','same')
maxPooling2dLayer([2 1],'Stride',2)
convolution2dLayer([4 1],2,'Padding','same')
maxPooling2dLayer([2 1],'Stride',2)
convolution2dLayer([4 1],1,'Padding','same')
options = trainingOptions('sgdm',...
'ExecutionEnvironment', 'cpu',...
'InitialLearnRate',0.005,...
'ValidationData',{XValidation,YValidation}, ...
'ValidationFrequency',10, ...
'Plots','training-progress');
net = trainNetwork(Xtrain,Ytrain,layers,options);