Кафе "Неизвестный тип решателя: SGD" - PullRequest
4 голосов
/ 01 июня 2019

Сборка Caffe (последняя версия, сборка только с CPU) под Windows 10 для использования в проекте VS C ++.Чтобы все стало работать, пришлось потрудиться.Но при создании экземпляра класса Solver возникает ошибка.

SolverParameter solverParam;
ReadSolverParamsFromTextFileOrDie("solver.prototxt", &solverParam);
boost::shared_ptr<Solver<float>> solver(SolverRegistry<float>::CreateSolver(solverParam));

Вывод:

WARNING: Logging before InitGoogleLogging() is written to STDERR
F0601 14:21:42.943118 10832 solver_factory.cpp:29] Check failed: registry.count(type) == 1 (0 vs. 1) Unknown solver type: SGD (known types: )
*** Check failure stack trace: ***

solver.prototxt content:

net: "model.prototxt"
base_lr: 0.02
lr_policy: "step"
gamma: 0.5
stepsize: 500000
display: 10
max_iter: 5000
snapshot: 1000000
snapshot_prefix: "XORProblem"
solver_mode: CPU
test_iter: 1
test_interval: 2000

В чем причина?

1 Ответ

0 голосов
/ 04 июня 2019

Похоже, вы вообще не определили тип решателя.
Попробуйте добавить

type: "SGD"

к вашему 'solver.prototxt'.

Тип решателя должен по умолчанию "SGD", но есть два способа определить его: один использует solver_type: SGD, а другой использует type: "SGD".Первая опция помечена как «устарела» в комментариях, поэтому я полагаю, что это доставляет вам затруднения.
Попробуйте избегать настроек по умолчанию, явно указав тип решателя с использованием недекларированного метода.

Обновление:
Глядя на ветку Windows readme , кажется, что существует открытая проблема с компиляцией совместно используемой библиотеки под Windows, особенно с решателями.
Я полагаю, что проблема у вас естьпереживание связано с этой проблемой.

...