• 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);

  • 相关阅读:
    NYOJ 132(最长回文子串)
    NYOJ 148(斐数求余)
    NYOJ 97
    NYOJ 206
    NYOJ 520(最大素因子的序数)
    数据库大型应用解决方案总结(转)
    SQL好的写法(转)
    WebService如何调试及测试工具
    刪除windows服務方法
    GhostDoc(注释生成工具)使用方法
  • 原文地址:https://www.cnblogs.com/Xbingbing/p/3323515.html
Copyright © 2020-2023  润新知