如何通过pycaffe更改Caffe中的求解器参数?
例如。在调用solver = caffe.get_solver(solver_prototxt_filename)
之后,我想更改求解器的参数(学习率,步长,伽玛,动量,base_lr,幂等),而不必更改solver_prototxt_filename
。
最佳答案
也许您可以创建一个临时文件。
首先,使用以下命令加载您的求解器参数
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)