在打包 MATLAB App 时,appdesig​ner设计中包含神经​网络相关程序,但是打​包出来却没有用,是为​什么

4 ビュー (過去 30 日間)
zhi
zhi 2024 年 1 月 12 日
回答済み: Umang Pandey 2024 年 1 月 23 日
[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);
代码在脚本中是这样的

回答 (1 件)

Umang Pandey
Umang Pandey 2024 年 1 月 23 日
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

カテゴリ

Help Center および File ExchangeDeep Learning Toolbox についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!