Skip to main content

Concepts

This section explains the ideas you need in order to use BranchKey, starting from the very beginning. It is written for researchers and scientists who know their own field well but do not necessarily come from a software or Python background.

You do not need to read it all before you start. But if any of the following questions sound like yours, the answers are here:

The one-sentence version

You train a model on your own data; BranchKey collects the numbers inside everyone's models, combines them (most commonly by averaging), and gives the shared result back — so every participant benefits from all the data without any raw data ever being shared.

Everything else in this section outlines that sentence.

A note on frameworks

The explanations here are deliberately framework-agnostic first: the core ideas are shown with plain NumPy arrays, because that is the common language every machine-learning framework speaks underneath. Once the idea is clear, each page shows the concrete version for the tool you are actually using — mainly PyTorch, with notes for Keras/TensorFlow and scikit-learn.

If you have never used NumPy: it is the standard Python library for working with arrays of numbers (think of it as spreadsheets of numbers that Python can do maths on very quickly). BranchKey's client library speaks NumPy, so a small amount of it is unavoidable — but the Extracting & reloading weights page shows you the exact few lines you need.