需要帮助与序列输入深度学习工具箱错误

9的观点(30天)
伊娃
伊娃 2023年6月16日16:41
评论道: 伊娃2023年6月16日21:32
我想实现一个脚本执行sequence-to-label(响应)分类。
我有一个问题与函数trainNetwork希望输入数据打包。
我试图弄清楚如何处理XTrain或XTrainTest,让' trainNetwork '命令接受输入数据。
我收到以下错误:“使用trainNetwork错误
无效的训练数据。预测必须是数值型数组,存储或表。网络的输入序列,预测也可以是单元阵列的序列。”
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
清晰的 所有 ;
关闭 所有 ;
clc
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%产生一个矩阵
NewDimension = uint16 (200);
μ= 5;
std = 2.1;
一个= normrnd(μ,性病,[NewDimension 784]);
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
N_sample = 60000;
N_test = 10000;
% XTrain = 0(28日28日1,N_sample);
XTrain = 0 (1 NewDimension N_sample);
XTrainTest =细胞(N_sample, 1);
YTrain = 0 (N_sample, 1);
%请从http://yann.lecun.com/exdb/mnist/ dowload MNIST数据集
%并解压缩。
fidimg1 = fopen ( “train-images.idx3-ubyte” , rb的 );
fidimg2 = fopen ( “train-labels.idx1-ubyte” , rb的 );
[img,计数]=从文件中读(fidimg1 16); %负责人表
[imgInd, count1] =从文件中读(fidimg2 8); %负责人表
k = 1: N_sample
[我~]=从文件中读(fidimg1[28日28]);
印第安纳州=从文件中读(fidimg2, 1);
清晰的 testsave 、清晰 testmult
testsave =重塑(即时通讯,784,1);
testmult = * testsave;
XTrain (1,1: NewDimension 1 k) = ' (testmult);
XTrainTest {k} = testmult ';
% XTrainTest {k} =双(转置(testmult));
% XTrain (:,: 1 k) =我';
YTrain (k) =印第安纳州;
结束
文件关闭(fidimg1);
文件关闭(fidimg2);
YTrain =分类(YTrain);
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XTest = 0 (1 NewDimension N_test);
% XTest = 0 (1784、1、N_test);
欧美= 0 (N_test, 1);
fidimg1 = fopen ( “t10k-images.idx3-ubyte” , rb的 );
fidimg2 = fopen ( “t10k-labels.idx1-ubyte” , rb的 );
[img,计数]=从文件中读(fidimg1 16);
[imgInd, count1] =从文件中读(fidimg2 8);
k = 1: N_test
[我~]=从文件中读(fidimg1[28日28]);
印第安纳州=从文件中读(fidimg2, 1);
清晰的 testsave 、清晰 testmult
testsave =重塑(即时通讯,784,1);
testmult = * testsave;
XTest (1,1: NewDimension, k) = ' (testmult);
% XTest (:,: 1 k) = im”; %训练集建筑
欧美(k) =印第安纳州;
结束
文件关闭(fidimg1);
文件关闭(fidimg2);
欧美=分类(欧美);
numHiddenUnits = 400;
numClasses = 10;
numFeatures = NewDimension;
%修改XTrain和XTest二维数组
XTrain =重塑(XTrain [NewDimension N_sample]);
% YTrain = ' (YTrain);
% XTest =重塑(XTest [NewDimension N_test]);
层= [
featureInputLayer (numFeatures)
fullyConnectedLayer (100) %在第一隐层神经元的数量
batchNormalizationLayer
reluLayer
fullyConnectedLayer (50) %在第二隐层神经元的数量
batchNormalizationLayer
reluLayer
fullyConnectedLayer (numClasses)
softmaxLayer
classificationLayer];
maxEpochs = 5;
miniBatchSize = 20;
选择= trainingOptions ( “亚当” ,
“ExecutionEnvironment” , “cpu” ,
“MaxEpochs” maxEpochs,
“MiniBatchSize” miniBatchSize,
“GradientThreshold” ,1
“详细” 假的,
“阴谋” , “训练进步” );
网= trainNetwork (XTrainTest、YTrain层,选择);
2的评论
伊娃
伊娃 2023年6月16日21:32
我觉得我似乎发现了故障模拟,它不得不与我层堆积,它被定义为sequenceInputLayer featureinputLayers而不是:
以下似乎让它训练:
层= [
sequenceInputLayer (numFeatures)
convolution1dLayer (filterSize numFilters, “填充” , “因果” )
reluLayer
layerNormalizationLayer
convolution1dLayer (2 * numFilters filterSize, “填充” , “因果” )
reluLayer
layerNormalizationLayer
globalAveragePooling1dLayer
fullyConnectedLayer (numClasses)
softmaxLayer
classificationLayer
];

登录置评。

答案(0)

s manbetx 845


释放

R2023a

社区寻宝

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

开始狩猎!