zoukankan      html  css  js  c++  java
  • BP神经网络代码

    close all
    clear all
    clc
    load x.txt;

    load y.txt;

    inputs = x';
    targets = y;

    % 创建一个模式识别网络(两层BP网络),同时给出中间层神经元的个数,这里使用20
    hiddenLayerSize = 20;
    net = patternnet(hiddenLayerSize);

    % 对数据进行预处理,这里使用了归一化函数(一般不用修改)
    % For a list of all processing functions type: help nnprocess
    net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
    net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};


    % 把训练数据分成三部分,训练网络、验证网络、测试网络
    % For a list of all data division functions type: help nndivide
    net.divideFcn = 'dividerand';  % Divide data randomly
    net.divideMode = 'sample';  % Divide up every sample
    net.divideParam.trainRatio = 70/100;
    net.divideParam.valRatio = 15/100;
    net.divideParam.testRatio = 15/100;

    % 训练函数
    % For a list of all training functions type: help nntrain
    net.trainFcn = 'trainlm';  % Levenberg-Marquardt

    % 使用均方误差来评估网络
    % For a list of all performance functions type: help nnperformance
    net.performFcn = 'mse';  % Mean squared error

    % 画图函数
    % For a list of all plot functions type: help nnplot
    net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
      'plotregression', 'plotfit'};


    % 开始训练网络(包含了训练和验证的过程)
    [net,tr] = train(net,inputs,targets);

    % 测试网络
    outputs = net(inputs);
    errors = gsubtract(targets,outputs);
    performance = perform(net,targets,outputs)

    % 获得训练、验证和测试的结果
    trainTargets = targets .* tr.trainMask{1};
    valTargets = targets  .* tr.valMask{1};
    testTargets = targets  .* tr.testMask{1};
    trainPerformance = perform(net,trainTargets,outputs)
    valPerformance = perform(net,valTargets,outputs)
    testPerformance = perform(net,testTargets,outputs)

    % 可以查看网络的各个参数
    view(net)

    % 根据画图的结果,决定是否满意
    % Uncomment these lines to enable various plots.
    figure, plotperform(tr)
    figure, plottrainstate(tr)
    figure, plotconfusion(targets,outputs)
    figure, ploterrhist(errors)
    % Test the Network
    load z.txt;

    testinputs= z';
    testoutputs = net(testinputs);

  • 相关阅读:
    Wannafly Winter Camp 2020 Day 7D 方阵的行列式
    [CF1311F] Moving Points
    [CF1311E] Construct the Binary Tree
    [CF1311D] Three Integers
    [CF1311C] Perform the Combo
    [CF1311B] WeirdSort
    [CF1311A] Add Odd or Subtract Even
    Wannafly Winter Camp 2020 Day 7A 序列
    SP7258 SUBLEX
    Wannafly Winter Camp 2020 Day 6J K重排列
  • 原文地址:https://www.cnblogs.com/Xbingbing/p/3323515.html
Copyright © 2011-2022 走看看