【问题标题】:How to set the number of iterations in RCNN, Fast RCNN or Faster RCNN?如何在 RCNN、Fast RCNN 或 Faster RCNN 中设置迭代次数?
【发布时间】:2017-08-05 10:53:09
【问题描述】:

我在自定义数据集上训练了 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]);

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

【问题讨论】:

  • 发布设置和训练调用代码

标签: matlab neural-network deep-learning object-detection


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-09-26
    • 2020-12-24
    • 2018-06-14
    • 2020-06-17
    • 1970-01-01
    • 2016-03-08
    • 2018-10-31
    • 2019-11-09
    • 1970-01-01
    相关资源
    最近更新 更多