neptune-client

PyPI version Build Status

Overview

Neptune is an experiment tracking hub that brings organization and collaboration to your data science team.

It works with any:

Keep the knowledge in one place, organized and ready to be shared with anyone.

image image image image

Getting started

Register

Go to https://neptune.ai/ and sign up.

It is completely free for individuals and non-organizations, and you can invite others to join your team!

Get your API token

In order to start working with Neptune you need to get the API token first. To do that, click on the Get API Token button on the top left.

image

Create your first project

Click on Projects and the New project. Choose a name for it and whether you want it public or private.

image

Invite others

Go to your project, click Settings and send invites!

image

Start tracking your work

Neptune let's you track any information important to your experimentation process.

Install Neptune client

Just run:

pip install neptune-client

Initialize Neptune

Toward the top of your script insert the following snippet.

import neptune

neptune.init(api_token='YOUR_API_TOKEN',
             project_qualified_name='USERNAME/PROJECT_NAME')

Create and stop the experiment

You can treat every piece of work that you want to record as an experiment. Just create an experiment:

neptune.create_experiment()

Do whatever you want and record it here! Stop the experiment.

neptune.stop()

Track hyperparameters

Making sure that all your hyperparameters are recorded is very important. With Neptune, you can do that easily by passing params dictionary when creating the experiment.

params = {'n_estimators':10,
          'criterion': 'gini',
          'max_depth': 2,
          'min_samples_split': 100}

neptune.create_experiment(params=params)

Track metrics

It is super easy. Just log your metric to Neptune.

neptune.send_metric('roc_auc', 0.82)

In case you want to track your metric after every step (deep learning), you can simply send your metric to the same channel after every step and Neptune will automatically create a chart for you.

for i in range(100):
     neptune.send_metric('learning_rate_schedule', 0.01 *1.05 ** i) 

Track result diagnostics

You can even log images to Neptune. Just save to the

plot_roc(y_test, y_test_pred)
plt.savefig('roc_curve.png') 
neptune.send_image('roc_curve', 'roc_curve.png')

Track artifacts

You can save model weights and any other artifact that you created during your experiment.

from sklearn.externals import joblib
joblib.dump(clf, 'rf_model.pkl')
neptune.send_artifact('rf_model.pkl')

Track data versions

from hashlib import sha1

data_version = sha1(X).hexdigest()
neptune.send_text('data_version', data_version)

Track code

You can track your codebase too. Just choose the files that you want to send to Neptune.


neptune.create_experiment(upload_source_files=['utils.py', 
                                               'main.py'])

Check the example project here

Getting help

If you get stuck, don't worry we are here to help. The best order of communication is: