本文共 2665 字,大约阅读时间需要 8 分钟。
Matlab2017b中增加了神经网络工具箱Neural Network Toolbox,许多深度学习网络用一两个命令就可以实现,大大简化了程序实现工作。
%exam1.m load digitTrainSet; %创建CNN网络 layers = [imageInputLayer([28 28 1],'Normalization','none'); convolution2dLayer(5,20); reluLayer(); maxPooling2dLayer(2,'Stride',2); convolution2dLayer(5,16); reluLayer(); maxPooling2dLayer(2,'Stride',2); fullyConnectedLayer(256); reluLayer(); fullyConnectedLayer(10); softmaxLayer(); classificationLayer()]; %设置网络训练方式 opts = trainingOptions('sgdm'); %训练网络 net = trainNetwork(XTrain,TTrain,layers,opts); load digitTestSet; %对测试数据进行分类 [YTest,scores] = classify(net,XTest); accuracy = sum(YTest == TTest)/numel(TTest);
该示例使用trainNetwork训练CNN网络,该函数用法为:
trainedNet = trainNetwork(X,Y,layers,options)
X为输入数据,Y为类别标记,categorical类型。
%exam2.m [X,T] = wine_dataset; hiddenSize = 10; %训练第一层自编码器 autoenc1 = trainAutoencoder(X,hiddenSize,... 'L2WeightRegularization',0.001,... 'SparsityRegularization',4,... 'SparsityProportion',0.05,... 'DecoderTransferFunction','purelin'); %使用自编码器对输入数据进行编码 features1 = encode(autoenc1,X); hiddenSize = 10; %对第一层编码器输出再训练自编码器 autoenc2 = trainAutoencoder(features1,hiddenSize,... 'L2WeightRegularization',0.001,... 'SparsityRegularization',4,... 'SparsityProportion',0.05,... 'DecoderTransferFunction','purelin',... 'ScaleData',false); %对第一层编码器输出进行编码 features2 = encode(autoenc2,features1); %对第二层编码器输出训练Softmax层 softnet = trainSoftmaxLayer(features2,T,'LossFunction','crossentropy'); %构建深度网络 deepnet = stack(autoenc1,autoenc2,softnet); %训练深度网络 deepnet = train(deepnet,X,T); %使用训练出的网络计算输入数据属于各类别的概率类型 wine_type = deepnet(X); plotconfusion(T,wine_type);
trainAutoencoder的用法为:
autoenc = trainAutoencoder(X,hiddenSize)
hiddensize表示隐含层大小,返回值autoenc是类型为Autoencoder的超类。其属性值如下图所示:
%exam3.m clear; [x,t] = iris_dataset; %创建模式识别网络 net = patternnet(1000); %训练网络 net = train(net,x,t); %显示网络结构 view(net) %计算x属于各类的概率 y = net(x); %计算网络性能 perf = perform(net,t,y); %得出类别标签 classes = vec2ind(y);
patternnet是神经网络工具箱的自带函数,用于创建模式识别网络,用法为:
patternnet(hiddenSizes,trainFcn,performFcn)
trainFcn表示训练函数,默认值为‘trainscg’,performFcn表示损失函数,默认值为‘crossentropy’。
转载于:https://blog.51cto.com/8764888/2053926