Skip to content

Instantly share code, notes, and snippets.

@arimbr
Last active February 3, 2020 23:09
Show Gist options
  • Select an option

  • Save arimbr/66267bbf7691bd432723484732d80e1a to your computer and use it in GitHub Desktop.

Select an option

Save arimbr/66267bbf7691bd432723484732d80e1a to your computer and use it in GitHub Desktop.
@classification.command()
@click.option('--input_train', default='train')
@click.option('--input_validation', default='validation')
@click.option('--output_model', default='train_model.bin')
@click.option('--output_parameters', default='parameters.json')
@click.option('--metric', default='f1')
@click.option('--k', default=1)
@click.option('--duration', default=1200)
@click.option('--model_size', default='2000M')
def autotune(input_train, input_validation, output_model, output_parameters,
metric, k, duration, model_size):
input_train_path = get_input_path(input_train)
input_validation_path = get_input_path(input_validation)
output_model_path = get_output_path(output_model)
output_parameters_path = get_output_path(output_parameters)
# Autotune model
model = fasttext.train_supervised(
input=input_train_path,
autotuneValidationFile=input_validation_path,
autotuneMetric=metric,
autotuneDuration=duration,
autotuneModelSize=model_size,
verbose=VERBOSE)
# Log best model metrics
n, p, r = model.test(input_validation_path, k=k)
print(json.dumps(
{'n': n, 'precision': p, 'recall': r, 'k': k}))
# Save best parameters
with open(output_parameters_path, 'w') as f:
json.dump(get_model_parameters(model), f)
# Save best model
model.save_model(output_model_path)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment