How to use a trained network to test new data set?

1 次查看(过去 30 天)
Hi I have trained Alexnet network with my image data and saved it as a 'my_trained_net.mat'. Now In another script, I want to load it and just check it by new data set which has not been used for training. my code is as below:
net=load ('my_trained_net.mat');
[FileName,PathName]=uigetfile({'*.jpg';'*.tiff'},'Select Your picture');
newImage = strcat(PathName, FileName);
img = readAndPreprocessImage(newImage);
label = char(classify(net,img));
figure,imshow(img);
title(label);
this is exactly what I have used at the end of my training script to label some test images. the error is ' classify Requires at least three arguments' which means it does not recognize the 'net' as a SeriesNetwork object.
any comment or better way to do the same act is welcome thanks

采纳的回答

Morteza Heidarinejad
After a while struggling with my code, I got the answer. when the pre-trained network such as Alexnet is trained with the new set of images using trainNetwork command, new trained net is saved with a name that has been specified in the script. in my case, it was "mytrainnet". So in the new script, only for loading the trained net, Matlab recalls that name. what I did only was calling the net with the below line:
load my_trained_net
then it loaded with the name of "mytrainnet" in the workspace as SeriesNetwork object. Therefore the labeling of the new data set was easy by calling the:
label = char(classify(mytrainnet,img));

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Deep Learning Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by