2015-08-05 2 views
5

Как изменить параметр решателя в Caffe через pycaffe?Изменение параметров решателя в Caffe через pycaffe

E.g. сразу после звонка solver = caffe.get_solver(solver_prototxt_filename) Я хотел бы изменить параметры решателя (скорость обучения, настройки, гамма, импульс, base_lr, мощность и т. д.), без необходимости изменять solver_prototxt_filename.

ответ

3

Возможно, вы можете создать временный файл.

Прежде всего, загружать параметры решателя с

from caffe.proto import caffe_pb2 
from google.protobuf import text_format 
solver_config = caffe_pb2.SolverParameter() 
with open('/your/solver/path') as f: 
    text_format.Merge(str(f.read()), solver_config) 

Вы можете изменить любой параметр решатель просто установив нужное значение в solver_config (например solver_config.test_interval = 15). Затем он просто создает временный файл и загружает ваш решатель из него:

new_solver_config = text_format.MessageToString(solver_config) 
with open('temp.prototxt', 'w') as f: 
    f.write(new_solver_config) 
solver = caffe.get_solver('temp.prototxt') 
solver.step(1) 
+0

Как изменить повторяющийся параметр, например. _stepvalue_ в 'solver_config' то? Когда я пытаюсь назначить 'solver_config.stepvalue = 1000', я получил ** AttributeError: Assignment не разрешено повторять поле« stepvalue »в объекте сообщения протокола. ** –

+0

@TuBui, потому что вы не используете« многоступенчатую »политику. – Microos