笔记来源于matlab官网,不足之处还请提出。
1.使用预训练网络
1.1加载并查看图像
使用imread函数导入图像,支持GIF,JPEG,PNG等,如将png格式的图像读入到变量I中。
I = imread('filename.png');
使用imshow函数显示变量中的图像。
imshow(I);
1.2使用alexnet做预测(alexnet是基于CNN的模型,已经训练好的神经网络)
创建alexnet的副本。
net = alexnetnet;
使用classify预训练alexnet网络对图像img进行预测,将预测结果存入变量pred1中。效果如下图。
pre1 = classify(net,img);
1.3CNN架构
使用deepnet(如1.2中的net)表示深度卷积网络,通过Layers使用索引引用变量的属性来检查网络的各个层次:
variable.Property,效果如下,ly是一个网络层数组:
ly=deepnet.Layers
可以使用常规的matlab数组检索单个图层,如将网络的第一个(输出)层提取到inlayer变量中:
inlayer = ly(1);
使用属性InputSize可以得到图层的输入层所需要的图像大小,如提取第一层(存储在变量inlayer中)的图像大小属性,并将结果存储在变量insz:
insz = inlayer.InputSize;
提取输出层到变量outlayer中,因为layer共25层,所以:
outlayer = ly(25);
输出层属性ClassName,用于给出网络被训练预测的类别的名称,如:
categorynames = outlayer.ClassNames;