Hi Antrea Plastira,
I understand that you want to know whether “perform” and “tr.best_perf” have the same use and whether they can be used interchangeably?
Even though both the functions are used to find the performance of the model they are used in different scenarios. tr.best_perf is used during the training phase on the training set which returns the best performance of the model evaluated at each epoch. Whereas the perform function is used during the testing phase on the testing data to evaluate the performance of the model.
Here is an example to better explain the difference:
% Load the example dataset
load iris_dataset
% Create and train a neural network
net = feedforwardnet(10);
[net,tr] = train(net, irisInputs, irisTargets);
% Access the best performance achieved during training
bestPerf = tr.best_perf;
% Evaluate the performance of the trained network on test data
testInputs = irisInputs(:, 51:end);
testTargets = irisTargets(:, 51:end);
perf = perform(net, testTargets, net(testInputs));
% Display the results
disp(['Best performance achieved during training: ' num2str(bestPerf)]);
disp(['Performance on test data: ' num2str(perf)]);
Also mentioning a few references which would be helpful:
- https://in.mathworks.com/help/deeplearning/ref/network.train.html
- https://in.mathworks.com/help/deeplearning/ref/network.perform.html
Hope it helps!