размер пакета обучения нейронной сети Matlab - PullRequest
1 голос
/ 24 февраля 2012

Я пытаюсь обучить нейронную сеть, используя разные размеры пакетов, но я не уверен, как объединить получившиеся сети вместе.

Вот код, который я написал для обучения сети с размером пакета какпараметр.

%% Train the Network using batches
batch_size = 50;

total_size = size(inputs,2);
batch_num = ceil(total_size / batch_size);

for i = 1:batch_num
    start_index = i + batch_size * (i - 1);
    end_index = batch_size + batch_size * (i - 1);

    if i == batch_num
        end_index = total_size;
    end

    [net,tr] = train(net,inputs(:,start_index:end_index), targets(:,start_index:end_index));
end

это структура net и tr

tr =

    trainFcn: 'traingdm'
  trainParam: [1x1 nnetParam]
  performFcn: 'mse'
performParam: [1x1 nnetParam]
    derivFcn: 'defaultderiv'
   divideFcn: 'dividerand'
  divideMode: 'sample'
 divideParam: [1x1 nnetParam]
    trainInd: [1x538 double]
      valInd: [1x115 double]
        ...

net =

Neural Network

          name: 'Pattern Recognition Neural Network'
    efficiency: .cacheDelayedInputs, .flattenTime,
                .memoryReduction
      userdata: (your custom info)

dimensions:

     numInputs: 1
     numLayers: 4
    numOutputs: 1
numInputDelays: 0
numLayerDelays: 0
 numFeedbackDelays: 0
 numWeightElements: 845
    sampleTime: 1

connections:

   biasConnect: [1; 1; 1; 1]
  inputConnect: [1; 0; 0; 0]
  layerConnect: [4x4 boolean]
 outputConnect: [0 0 0 1]

subobjects:

        inputs: {1x1 cell array of 1 input}
        layers: {4x1 cell array of 4 layers}
       outputs: {1x4 cell array of 1 output}
        biases: {4x1 cell array of 4 biases}
  inputWeights: {4x1 cell array of 1 weight}
  layerWeights: {4x4 cell array of 3 weights}
    ...

как быЯ получаю результирующую переменную net для хранения результирующей нейронной сети после того, как все пакеты завершены?

1 Ответ

0 голосов
/ 24 февраля 2012

Если я правильно понимаю, вы переопределяете переменные net и tr.Просто используйте массив ячеек:

Объявите его в начале, используя:

 net = {};
 tr = {};

И измените соответствующую строку на:

 [net{end+1},tr{end+1}] = ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...