我与convolution1dLayer的麻烦

9的观点(30天)
层= [
featureInputLayer (24)
32岁的convolution1dLayer (5“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling1dLayer (2“步”,2)
convolution1dLayer (64,“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling1dLayer (2“步”,2)
convolution1dLayer (128,“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling1dLayer (2“步”,2)
dropoutLayer (0.5)
fullyConnectedLayer (5)
softmaxLayer
classificationLayer];
选择= trainingOptions (“亚当”,
“MaxEpochs”,20岁,
“MiniBatchSize”,128,
“ValidationData”{XVal, YVal},
“ValidationFrequency”,50岁,
“洗牌”,“every-epoch”,
“详细”假的,
“阴谋”,“训练进步”);
% Xtrain = 5000 x24 Ytrain = 5000 x1 Xtest x1 = 5000 x24次= 50000
网= trainNetwork (XTrain、YTrain层,选择);
% Doğruluk oranınıhesapla
YPred =分类(净,XTest);
精度= (YPred = =次)/元素个数之和(欧美);
流(“Doğruluk oranı:% 0.2 f % % \ n ',100 *的准确性);
我有一个15300条记录的数据集24特性。(规模15300 x24)输出数据集包括5类(15300 x1)。我试图与cnn进行分类。当我写层,我遇到以下错误:
引起的由:
2:输入数据必须只有一个空间维度,一个时间维度只,或每个之一。
相反,它有0空间维度和时间维度。
我一直没能解决。
2的评论
nagihan yagmur
nagihan yagmur 2023年3月26日
编辑:沃尔特·罗伯森 2023年3月26日
clc;
清晰的所有;
负载veri_seti.mat
X = MyData.Inp;
Y =分类(MyData.Out);
numClasses = 5;
层= [featureInputLayer(24日“名字”,“输入”)
convolution1dLayer (128 3“步”,2)
reluLayer () maxPooling1dLayer (2“步”,2)
batchNormalizationLayer ()
convolution1dLayer (64 3“步”,1)
reluLayer ()
maxPooling1dLayer (2“步”,2)
batchNormalizationLayer ()
dropoutLayer (0.2)
convolution1dLayer (32 3“步”,1)
reluLayer ()
batchNormalizationLayer ()
convolution1dLayer (16 3“步”,1)
reluLayer ()
batchNormalizationLayer ()
dropoutLayer (0.2)
convolution1dLayer (8 3“步”,1)
reluLayer ()
maxPooling1dLayer (2“步”,2)
globalMaxPooling1dLayer ()
dropoutLayer (0.2)
batchNormalizationLayer ()
fullyConnectedLayer (1024)
fullyConnectedLayer (1024)
softmaxLayer ()
classificationLayer ()];
% Oğrenme oranıve diğer hiperparametreler
miniBatchSize = 128;
maxEpochs = 30;
initialLearningRate = 0.001;
learnRateDropFactor = 0.1;
learnRateDropPeriod = 10;
%选择nesnesi
选择= trainingOptions (“亚当”,
“MiniBatchSize”miniBatchSize,
“MaxEpochs”maxEpochs,
“InitialLearnRate”initialLearningRate,
“LearnRateSchedule”,“分段”,
“LearnRateDropFactor”learnRateDropFactor,
“LearnRateDropPeriod”learnRateDropPeriod,
“洗牌”,“every-epoch”,
“详细”假的,
“阴谋”,“训练进步”);
错误使用vertcat
维数组的连接是不一致的。
错误的例子(9)行
层= [featureInputLayer(24日“名称”,“输入”)
我经常在这两个错误

登录置评。

接受的答案

马特·J
马特·J 2023年4月4日
编辑:马特·J 2023年4月6日
技术支持建万博1manbetx议2解决方案给我。最简单的国际海事组织是重塑训练2 d图像分类问题,其中一个尺寸的图像是一个单例。这需要使用imageInputLayer以及将卷积和池层转换为二维形式,还指定一个作为一个单独的维度。
负载veri_seti
XTrain =重塑(MyData.Inp ', 24岁,1,1,[]);%尺寸:24 x1x1xbatch
YTrain =重塑(分类(MyData.Out), [], 1);%维度:Batchx1
层= [imageInputLayer((24日1),“名字”,“输入”)< %——用imageInputLayer
32岁的convolution2dLayer ([5, 1]“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer ((2, 1),“步”,(2,1))
convolution2dLayer ([5, 1], 64,“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer ((2, 1),“步”,(2,1))
convolution2dLayer ([5, 1], 128,“填充”,“相同”)
batchNormalizationLayer
reluLayer
maxPooling2dLayer ((2, 1),“步”,(2,1))
dropoutLayer (0.5)
flattenLayer
fullyConnectedLayer (5)
softmaxLayer
classificationLayer];
% analyzeNetwork(层);
选择= trainingOptions (“亚当”,
“MaxEpochs”3,
“MiniBatchSize”,128,
“详细”假的,
“阴谋”,“训练进步”,“ExecutionEnvironment”,“cpu”);
网= trainNetwork (XTrain YTrain(:),层,选项);
3评论
马特·J
马特·J 2023年4月6日
我很高兴,但请Accept-click表明它的答案。

登录置评。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2023年3月26日
移动:沃尔特·罗伯森 2023年3月26日
层= [featureInputLayer(24日“名字”,“输入”)
convolution1dLayer (128 3“步”,2)
reluLayer () maxPooling1dLayer (2“步”,2)
注意到你有两层在同一行。
3评论

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!