Number of inputs does not match net.numInputs.

MATLAB训练出来的神经网络导出模型,用该模型测试新的数据,始终报错“Number of inputs does not match net.numInputs.”!
具体代码如下:

save('model.mat','net1'); 
load model.mat
predict_test = zeros(1201,12);
for i = 1:1201
    result = sim(net1,input_test(i,:)');
    predict_test(i,:) = result';
end 

img


神经网络期望的输入维度是8,是匹配的,还是报错

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

这个错误提示是因为你的模型期望输入的数量与你实际输入的数量不一致。你需要检查一下输入测试数据的维度是否与你的模型要求的输入维度相同。你可以通过以下代码来检查模型的输入维度:

net1.inputs{1}.size

然后,你需要检查一下你的输入测试数据的维度是否与模型要求的输入维度相同。如果不同,你需要对输入测试数据进行调整,以使其与模型的输入维度相同。例如,如果你的模型要求的输入维度为[10 1],而你的输入测试数据的维度为[1 10],你可以通过以下代码将其转换为[10 1]:

input_test = input_test';

然后,你可以使用你的模型对输入测试数据进行预测。

问题分析:根据给出的代码,可能是输入数据的维度不匹配导致的错误。

解决方法:首先要检查训练时使用的输入数据的维度是否与测试时使用的数据维度匹配。如果不匹配,可以尝试调整输入数据的维度或调整神经网络的输入层的大小,使其与输入数据的维度匹配。

在这个问题中,错误信息是“Number of inputs does not match net.numInputs。”,提示输入的数量不匹配。也就是说,输入的数据的维度和神经网络的输入层大小不一致。因为输入数据的大小是1201x12,而神经网络的输入层数是另一个未给出的变量net1.numInputs。因此,我们需要检查神经网络的输入层数是否等于12,或调整输入数据的大小以匹配输入层数。

代码解决:

load('model.mat'); %加载模型
predict_test = zeros(1201, net1.numOutputs); %初始化预测结果矩阵
for i = 1:1201
    result = sim(net1, input_test(i,:)'); %注意输入数据要转置
    predict_test(i,:) = result';
end