在打包 MATLAB App 时,appdesigner设计中包含神经网络相关程序,但是打包出来却没有用,是为什么
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
[f,p]=uigetfile({'*.xlsx;*.txt;*.xls;','All Data Files'});
if (ischar(p))
fname = [p f];
A=xlsread(fname);
app.UITable.Data=A;
end
% A=xlsread('test1.xlsx');
% app.UITable.Data=A;
input=A(1:end,1:5);
output=A(1:end,6:7);
insize=size(input,2);
outsize=size(output,2);
%% 划分训练集和测试集
num=size(input,1);
rowrankA = randperm(num); % 随机打乱的数字,从1~行数打乱
input= input(rowrankA, :);%按照rowrank打乱矩阵的行数
output=output(rowrankA, :);
Xtrain=input(1:floor(0.8*num),:);
Ytrain=output(1:floor(0.8*num),:);
Xtest=input(floor(0.8*num)+1:num,:);
Ytest=output(floor(0.8*num)+1:num,:);
%% 训练集归一化
muX = mean(Xtrain,1);
sigmaX = std(Xtrain,0,1);
muT = mean(Ytrain,1);
sigmaT = std(Ytrain,0,1);
Xtrain = (Xtrain - muX) ./ sigmaX;
Ytrain = (Ytrain - muT) ./ sigmaT;
%% 创建网络结构
layers = [
featureInputLayer(insize,"Name","featureinput")
fullyConnectedLayer(10,"Name","fc")
fullyConnectedLayer(outsize,"Name","fc_1")
regressionLayer("Name","regressionoutput")];
%% 设置训练选项
Xtest = (Xtest - muX) ./ sigmaX;
Ytest = (Ytest - muT) ./ sigmaT;
b={Xtest,Ytest};
options = trainingOptions("adam", ...
MaxEpochs=500, ...
Shuffle="every-epoch", ...
Plots="training-progress", ...
Verbose=0 ,...
ValidationData=b);
%% 训练网络
net = trainNetwork(Xtrain,Ytrain,layers,options);
% X1=app.EditField_2.Value;
% X2=app.EditField.Value;
% X3=app.EditField_3.Value;
% X4=app.EditField_4.Value;
% X5=app.EditField_5.Value;
X=[1,1,1,1,1];
X = (X - muX) ./ sigmaX;
Y= predict(net,X);
Y= Y.*sigmaT+muT;
Y=double(Y);
代码在脚本中是这样的
0 commentaires
Réponses (1)
Umang Pandey
le 23 Jan 2024
Hi Zhi,
You can refer to the following MATLAB answers for more information on how to package your Neural Network app -
Hope this helps!
Best,
Umang
0 commentaires
Voir également
Catégories
En savoir plus sur Deep Learning Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!