【问题标题】:How can I train a neural (pattern recognition) network multiple times in matlab?如何在 matlab 中多次训练神经(模式识别)网络?
【发布时间】:2015-08-28 05:50:47
【问题描述】:

我需要在 matlab 中训练一个模式识别网络。我有几个数据集将用于训练。我的脚本如下所示:

%%% train network with a couple of datasets
pathStr = 'Daten_Training';
files = dir(sprintf('%s/*.mat',pathStr)); 

for k = 1:length(files)

    %%% load data for training
    load(sprintf('%s/%s',pathStr, files(k).name));

    %%% manually set targets to train the network with
    Targets = setTargets(Data);

    %%% create and train neural network
    % Create a Pattern Recognition Network
    hiddenLayerSize = 20;
    net = patternnet(hiddenLayerSize);

    % Train the network with our Data
    net = trainNetwork(net,Data,Targets);

end

trainNetwork 函数如下所示:

function [ net ] = trainNetwork( net, Data, Targets )

    % calculate features
    [Features, TargetsBlock, blockIdx] = calcFeatures_Training(Data, Targets);

    % split data for training
    net.divideParam.trainRatio = 70/100;
    net.divideParam.valRatio = 15/100;
    net.divideParam.testRatio = 15/100;

    % Train the network
    [net, tr] = train(net, Features, TargetsBlock);

end

有没有一种方法可以多次训练并获得相同的结果,就好像我对连续的所有数据集使用一次训练一样? 目前看来,网络只是用新数据重新训练,之前的一切都丢失了。

【问题讨论】:

  • 您可以将网络保存到 mat 文件:save('filename','VariableName(trained nnet object)') 并在将来加载:加载文件名
  • 我明白我的错:我在每个循环中都初始化网络。这当然行不通。但是如果我只初始化一次,我可以训练多次吗?
  • 是的,但是随着每次学习,网络的权重都会被修改。你应该总是训练一次;)当然,你可以训练多次,保存训练好的网络,最后选择最好的网络;)

标签: matlab neural-network


【解决方案1】:

不要现在它是否真实,但也许对某人有帮助。

您只能训练网络一次。如果你再次训练,它将是一个新的网络。 :) 权重会有所不同。如果您提供相同的名称,MATLAB 将在您每次运行脚本时进行覆盖。

我认为最好的方法是:

  1. 使用您自己的输入、层和选项训练您的网络。
  2. 使用以下函数将网络保存到文件中:save('myFilename.mat','myNetname');
  3. 从文件中加载您的网络:load('myFilename.mat');
  4. 更改输入 - 也许您有多个数据集。
  5. 在您的网络上更新权重,并评论训练选项 (%)!不要再次训练网络。您可以使用以下函数进行更新:myNetname = predictAndUpdateState(myNetname,someInput);

希望这对某人有所帮助:)

【讨论】:

    猜你喜欢
    • 2011-06-02
    • 2010-11-20
    • 1970-01-01
    • 2012-05-29
    • 2015-08-13
    • 2012-02-29
    • 1970-01-01
    • 2013-07-11
    • 2013-11-30
    相关资源
    最近更新 更多