Параметры SGD в обучении CNTK C ++

Я пытаюсь перейти с Brainscript на c ++ для обучения модели в cntk и пытаюсь настроить различные параметры в блоке SGD в файле .cntk при использовании c ++. В частности, я не уверен, как установить:

    maxSamplesInRAM
numSubminibatches
minLearningRatePerSample   (is this even necessary as learning rate is per sample, not mb, in c++ I think???)
momentumPerMB
L2RegWeight
dropoutRate

Я также не совсем уверен, какой из MomentumSGDLearner или SGDLearner совпадает с тем, что происходит в Brainscript (я предполагаю последнее, поскольку вы можете указать импульс).

Пока я работаю с:

LearningRateSchedule learningRatePerSample = TrainingParameterPerSampleSchedule(5e-8);

CNTK::AdditionalLearningOptions learner_opts;

learner_opts.dictOptions.Add(std::wstring(L"dropoutRate"), std::wstring(L"1"));
learner_opts.dictOptions.Add(std::wstring(L"maxSamplesInRAM"), std::wstring(L"1"));
learner_opts.dictOptions.Add(std::wstring(L"numSubminibatches"), std::wstring(L"4"));
learner_opts.l2RegularizationWeight = 0;
learner_opts.l1RegularizationWeight = 0;

// Either
//auto trainer = CreateTrainer(classifierOutput, errLayer, errLayer, { SGDLearner(classifierOutput->Parameters(), learningRatePerSample,learner_opts) });

// Or
CNTK::MomentumSchedule momentumSchedule = CNTK::MomentumSchedule(0.01); // Opposite sense from in brainscript?? (0==off)
auto trainer = CreateTrainer(classifierOutput, errLayer, errLayer, { MomentumSGDLearner(classifierOutput->Parameters(), learningRatePerSample,momentumSchedule, DefaultUnitGainValue(), learner_opts) });

Таким образом, импульс, похоже, что-то делает, но имеет противоположный смысл branscript (0 = выключено, а не 1 ??). Мои эксперименты с CNTK :: AdditionalLearningOptions, кажется, не имеют никакого значения вообще. Я предполагаю, что Learner_opts.l2RegularizationWeight такой же, как L2RegWeight в Brainscript, но трудно сказать, если он что-то делает.

C ++ действительно может сделать с некоторой документацией!

Спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …