Matlab实现和使用神经网络的几种方式详细讲解--附代码可下载

    科技2026-01-18  13

    目录

    一、引言二、神经网络的实现和使用方式(一) DeepLearningToolbox(二)Deep Network Designer APP(三)Neural Net APP

    一、引言

    神经网络的实现在Matlab上已经来说相对比较完善了。被封装成了很多工具箱,可以直接的快速上手,去实现一个Demo。正是因为太完善,实现和使用神经网络的方式有很多种。一一介绍都是怎么使用的。

    二、神经网络的实现和使用方式

    (一) DeepLearningToolbox

    安装 这个是安装Matlab的时候默认安装的工具箱。如果没有,在附加资源管理器中搜索,点击安装就行。 封装好的神经网络工具箱函数 在此工具箱里有许许多多的封装好的神经网络。可以直接调用函数就可以使用。比如: newlin 线性神经网络newgrnn 广义回归神经网络 GPNNnewpnn 概率神经网络 PNNnewff BP神经网络RBF神经网络通用函数 newrb, newrbenewc 竞争神经网络nowsom SOM神经网络 BP神经网络举例使用 %% I. 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp = randperm(size(NIR,1)); %打乱60个样本排序 % 训练集——50个样本 P_train = NIR(temp(1:50),:)'; T_train = octane(temp(1:50),:)'; % 测试集——10个样本 P_test = NIR(temp(51:end),:)'; T_test = octane(temp(51:end),:)'; N = size(P_test,2); %% III. 数据归一化 [p_train, ps_input] = mapminmax(P_train,0,1); p_test = mapminmax('apply',P_test,ps_input); [t_train, ps_output] = mapminmax(T_train,0,1); %% IV. BP神经网络创建、训练及仿真测试 %% % 1. 创建网络 net = newff(p_train,t_train,9); %9是隐含层神经元的个数(大家改改测试下结果影响),连接权值是3628,讲一下怎么计算得到的 %% % 2. 设置训练参数 net.trainParam.epochs = 1000; %迭代次数 net.trainParam.goal = 1e-3; %mse均方根误差小于这个值训练结束 net.trainParam.lr = 0.01; %学习率 %% % 3. 训练网络 net = train(net,p_train,t_train); %% % 4. 仿真测试 t_sim = sim(net,p_test); %返回10个样本的预测值 %% % 5. 数据反归一化 T_sim = mapminmax('reverse',t_sim,ps_output); %反归一化结果 %% V. 性能评价 %% % 1. 相对误差error error = abs(T_sim - T_test)./T_test; %% % 2. 决定系数R^2 R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2)); %% % 3. 结果对比 result = [T_test' T_sim' error'] %输出真实值,预测值,误差 %% VI. 绘图 figure plot(1:N,T_test,'b:*',1:N,T_sim,'r-o') legend('真实值','预测值') xlabel('预测样本') ylabel('辛烷值') string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]}; title(string) BP神经网络Demo下载密码: h4iv

    (二)Deep Network Designer APP

    第二种是使用过 APP去设计神经网络

    打开APP

    设计神经网络 可以用现成的网络,比如googlenet、alexnet等等,自行去百度查一下,在command window区域输入googlenet,然后打开APP就可以导入网络,下图就是导入的googlenet。也可以自己设计神经网络结构,拖动左边的图标各个结构到工作区,然后用鼠标点击连接起来。可以导出到工作空间或者生成相应的代码。 随便搭建一个网络,生成的神经网络代码如下

    layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]; 神经网络使用举例 完整的使用一个神经网络可以在command window区域直接输入以下命令,就可以在自己的平台跑一个Demo。详细讲解可参考官网的 TrainNetwork使用讲解以及使用案例 openExample('nnet/ConstructAndTrainAConvolutionalNeuralNetworkExample')

    (三)Neural Net APP

    打开APP 第一种方式:在APP处搜neural net就会显示出来,有多种选择,每个有什么区别,参考我另一篇博客Matlab神经网络的几个工具箱nntool、nftool、nctool、ntstool与nprtool的区别与使用 第二种方式:在command window输入nntool、nctool、nfttool、ntstool、nprtool。就可以打开。以nntool为例。 Neural Net APP的使用

    这个APP是完全封装死了的,只需要训练集测试机就可以出数据。具体使用可以参考

    B站演示nftool工具箱的使用B 站演示nntool工具箱的使用
    Processed: 0.025, SQL: 9