Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)