2015-08-05 11 views
5

Jak zmienić parametr solvera w Caffe poprzez pycaffe?Zmiana parametrów solver w Caffe poprzez pycaffe

E.g. zaraz po wywołaniu solver = caffe.get_solver(solver_prototxt_filename) Chciałbym zmienić parametry solver (szybkość uczenia się, stepsize, gamma, pęd, base_lr, moc, itp.), bez konieczności zmiany solver_prototxt_filename.

Odpowiedz

3

Może uda Ci się utworzyć plik tymczasowy.

Przede wszystkim, należy załadować parametry Solver z

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) 

Można modyfikować dowolny parametr solver prostu ustawiając żądaną wartość w solver_config (np solver_config.test_interval = 15). Następnie tworzysz plik tymczasowy i ładujesz z niego solver:

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

Jak zmienić powtarzany parametr, np. _stepvalue_ w 'solver_config', a następnie? Kiedy próbuję przypisać 'solver_config.stepvalue = 1000', otrzymałem ** AttributeError: Przypisywanie nie jest dozwolone dla powtarzanego pola" stepvalue "w obiekcie wiadomości protokołu. ** –

+0

@TuBui, ponieważ nie stosujesz polityki" multistep ". – Microos

Powiązane problemy