save a training code using ANN in script and use it in a function in simulink Matlab.
2 ビュー (過去 30 日間)
古いコメントを表示
Hello,
so i have a code for prediction of the output power of solar pv panel in a script, i want to save the training model of the script, then i want to use this training model in a function block using simulink Matlab, but the problem is i don't know how to save the "net" of the training model, and after saving it, how to use it in the function?
%code for prediction
load Nndat.mat
% This script assumes these variables are defined:
% datas21 - input data.
% Solarenergy - target data.
x = datas21';
t = Solarenergy';
% Choose a Training Function
% For a list of all training functions type: help nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory. Suitable in low memory situations.
trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation.
% Create a Fitting Network
hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize,trainFcn);
% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
% Train the Network
[net,tr] = train(net,x,t);
% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
plot(x(1,:),y,'o')
%function using simulink matlab:
function outputPower = predictPVOutput(inputData)
% Predict using the ANN
outputPower = net(inputData);
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1568339/image.png)
採用された回答
Ganesh
2023 年 12 月 18 日
編集済み: Ganesh
2023 年 12 月 18 日
I understand that you are trying to save your ANN so as to use the model at a later point. You can achieve this by using the save and load commands.
In your case, the implementation will be as follows:
[net,tr] = train(net,x,t); % Training the model
save('net')
function outputPower = predictPVOutput(inputData)
load('net')
outputPower = net(inputData);
end
Please refer to the following documentation for more info on save() function. You may use it to name your saved file accordingly.
Thanks,
Ganesh
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Sequence and Numeric Feature Data Workflows についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!