如何设置RCNN、Fast RCNN或Faster RCNN的迭代次数?

How to set the number of iterations in RCNN, Fast RCNN or Faster RCNN?

我在自定义数据集上训练了 R-CNN 网络模型,最终得到了预期的结果。但是我找不到在开始训练过程之前在哪里设置 迭代次数 并且训练继续进行而没有任何迹象表明它何时会停止。有没有办法预先设置迭代次数,以便在指定步骤后停止?

这是训练rcnn的代码:

%%%%%%%%%%%%%%%%%%%%%% Define Inputs

imagePath = 'D:\Thesis\Data\VEDAI\vedai\train_images\';
sampleImage = '00000000.png';
objectClasses = {'car','truck','tractor','campingcar','van','other', 'pickup', 'boat', 'plane'};
imageTable = vedaiTrain;
smallestObjectSize = [32, 32, 3];

%%%%%%%%%%%%%%%%%%%%%% Calculations

numClassesPlusBackground = numel(objectClasses) + 1;

t = num2cell(smallestObjectSize);
[height, width, numChannels] = deal(t{:});
imageSize = [height width numChannels];

%%%%%%%%%%%%%%%%%%%%%% Network Layers

%%%%% inputLayer
inputLayer = imageInputLayer(imageSize);

%%%%% middleLayer
filterSize = [5 5];
numFilters = 32;

middleLayers = [

convolution2dLayer(filterSize, numFilters, 'Padding', 2)

reluLayer()

maxPooling2dLayer(3, 'Stride', 2)

convolution2dLayer(filterSize, numFilters, 'Padding', 2)
reluLayer()
maxPooling2dLayer(3, 'Stride',2)

convolution2dLayer(filterSize, 2 * numFilters, 'Padding', 2)
reluLayer()
maxPooling2dLayer(3, 'Stride',2)

]

%%%%% finalLayer
finalLayers = [

fullyConnectedLayer(64)

reluLayer

fullyConnectedLayer(numClassesPlusBackground)

softmaxLayer
classificationLayer
]

Layers = [
    inputLayer
    middleLayers
    finalLayers
    ]

layers(2).Weights = 0.0001 * randn([filterSize numChannels numFilters]);

%%%%%%%%%%%%%%%%%%%%%% training options
options = trainingOptions('sgdm', ...
    'Momentum', 0.9, ...
    'InitialLearnRate', 0.001, ...
    'LearnRateSchedule', 'piecewise', ...
    'LearnRateDropFactor', 0.1, ...
    'LearnRateDropPeriod', 8, ...
    'L2Regularization', 0.004, ...
    'MaxEpochs', 40, ...
    'MiniBatchSize', 128, ...
    'Verbose', true);

%%%%%%%%%%%%%%%%%%%%%% Train an R-CNN object detector
rcnn = trainRCNNObjectDetector(imageTable,Layers, options, ...
'NegativeOverlapRange', [0 0.3], 'PositiveOverlapRange',[0.5 1]);

它一直训练迭代直到一段时间,我不知道它是如何决定的。

在文件train_faster_rcnn_alt_opt.py文件中,将max_iters = [80000, 40000, 80000, 40000]参数设置为每个阶段所需的迭代次数。