如何解决无效的训练数据 X 和 Y 必须具有相同数量的观测值
我有很长的心电图信号,分为 300 个点段/心跳。我想使用 CNN 进行特征提取,并使用双向 LSTM 层进行分类。 我有以下网络:
inputSize=[1 300 1]; %the heartbeat size
Layers=[
sequenceInputLayer(inputSize,'normalization','zscore','Name','input');
sequenceFoldingLayer('Name','fold')
convolution2dLayer([1 7],16,'stride',[1 1],'padding','same','conv1')
batchnormalizationLayer('Name','bn1')
maxPooling2dLayer([1 2],[1 2],'mpool1')
convolution2dLayer([1 7],32,'conv2')
batchnormalizationLayer('Name','bn2')
reluLayer('Name','relu1')
maxPooling2dLayer([1 2],'mpool2')
convolution2dLayer([1 5],64,'conv3')
batchnormalizationLayer('Name','bn3')
reluLayer('Name','relu2')
convolution2dLayer([1 5],128,'conv4')
batchnormalizationLayer('Name','bn4')
reluLayer('Name','relu3')
convolution2dLayer([1 3],256,'conv5')
batchnormalizationLayer('Name','bn5')
reluLayer('Name','relu4')
maxPooling2dLayer([1 2],'mpool3')
convolution2dLayer([1 3],512,'conv6')
batchnormalizationLayer('Name','bn6')
reluLayer('Name','relu5')
maxPooling2dLayer([1 2],'mpool4')
sequenceUnfoldingLayer('Name','unfold')
flattenLayer('Name','flatten')
bilstmLayer(200,'lstm')
reluLayer('Name','relu6')
fullyConnectedLayer(256,'fc1')
reluLayer('Name','relu7')
fullyConnectedLayer(128,'fc2')
reluLayer('Name','relu8')
fullyConnectedLayer(5,'fc3')
softmaxLayer('Name','softmax')
classificationLayer('Name','classification')
];
我使用以下方法连接层:
lgraph = layergraph(Layers);
lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');
当我训练网络时出现以下错误:
Error using trainNetwork (line 170)
Invalid training data. X and Y must have the same number of observations.
Error in CNN_LSTM (line 152)
convnet = trainNetwork(Xtrain,Ytrain,lgraph,options);
谁能告诉我如何解决这个错误? Xtrain 的大小为 1 300 1 91147(它包含 91147 个段,每个段 300 个数据点) Y 火车的尺寸为 91147 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。