def write_job_script(job_file, job_template, job_params): ''' Write a job script to job_file by filling in job_template with job_params. ''' buf = params.format_params(job_params, line_start='# ') buf = fill_job_template(job_template, dict(job_name=job_params.name, job_params=buf)) buf = fill_job_template(buf, job_params) write_file(job_file, buf)
def write_solver(solver_file, solver_params): ''' Write a dict of solver_params to solver_file. ''' buf = '' if solver_params: buf += params.format_params(solver_params, '# ') buf += str(make_solver(**solver_params)) write_file(solver_file, buf)
def write_model(model_file, net_param, model_params={}): ''' Write net_param to model_file. If params dict is given, write the params as comments in the header of model_file. ''' buf = '' if model_params: buf += params.format_params(model_params, '# ') buf += str(net_param) write_file(model_file, buf)
def write_models(model_dir, param_space, scaffold=False, n_benchmark=0, verbose=False): ''' Write a model in model_dir for every set of params in param_space. ''' if not os.path.isdir(model_dir): os.makedirs(model_dir) if scaffold or n_benchmark > 0: df = pd.DataFrame(index=range(len(param_space))) model_names = [] for i, model_params in enumerate(param_space): model_file = os.path.join(model_dir, '{}.model'.format(model_params.name)) if verbose: print('CREATING MODEL ' + str(i)) print('model_file = ' + model_file) print('model_name = ' + model_params.name) print('model_params = \n' + params.format_params(model_params, ' '), end='') net_param = make_model(verbose=verbose, **model_params) write_model(model_file, net_param, model_params) model_names.append(model_params.name) if scaffold or n_benchmark > 0: df.loc[i, 'model_file'] = model_file net = caffe_util.Net(model_file, caffe.TRAIN) result = benchmark_net(net, n=n_benchmark) for key, value in result.mean().items(): df.loc[i, key] = value if verbose: print(df.loc[i]) print(model_file) if scaffold or n_benchmark > 0: print(df) print(model_names)