利用MATLAB做一维数据的CNN分类 问题及解决方法
我在做一维CNN分类时参考了知乎凉拌西红柿答主的程序示例,根据其代码改编实现了CNN分类。
其中遇到的问题与解决方法总结如下:
1. 数据维度转换问题
for i = 1 : 1 : 3000
for j = 1 : 1 : 72
Xtrain(1, j, 1, i)=data(i, j); % 输入数据维度转化
end
end
程序说明:
(1)需要进行分类的数据data是3000*72维的,则可通过下面的代码转换成Xtrain作为CNN的输入。
(2)可以理解为,“3000”对应数据量(条),“72”对应样本点数。
(3)对于有时间序列,如信号,也可以根据上述方式转换维度,不会影响数据的时间关联性。
(4)Xtrain的4D维度是为了适应图像输入格式。4个参数分别代表图像的(长,宽,通道数,样本量)。
2.训练准确率一直在50%左右
可能存在的问题:
(1)网络结构不合理——>增加卷积层数。