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

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

目录

一、引言二、神经网络的实现和使用方式(一) 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工具箱的使用

相关推荐

365bet亚洲投注 最便宜的16核洋垃圾怎么样?建议别买
365bet-体育投注 拏手的解释及意思

拏手的解释及意思

📅 09-17 👁️ 9663
365bet-体育投注 电脑端的网址在哪找?

电脑端的网址在哪找?

📅 09-20 👁️ 8720