Skip to content

Notebooks

Project Jupyter

Jupyter notebooks are a part of Project Jupyter and a common tool in the development of machine learning models. The highly interactive flow with rich output allows users to keep large datasets in memory for exploratory development, visualization and debugging. The notebook calculations can be made remotely which means working with high compute requirements can still be done from your own machine, without a need for having the data local.

A downside is that the nonsequential nature of notebooks leads to unorganized code. When model deployment is the goal, well structured and testable code is important.

To combine the best of both worlds, people developing models commonly develop in a notebook environment and copy finished components into a normal Python project with an IDE like PyCharm or Visual Studio Code. The notebook then imports these methods and classes from the Python project to keep things tidy.

Cubonacci notebooks

Cubonacci notebook

Cubonacci has a custom notebook solution based on this development flow. Notebooks are connected to git commits. At the top of the user interface is a full-fledged IDE tailored to the structure of Cubonacci. Below this editor is a normal notebook structure with all the functionality that you are used to. In addition, however, you can import directly from the IDE at the top. Any changes in the codebase can be re-imported immediately. If the changes that you applied are suitable for a new commit, you can commit these back into git directly from the user interface.

Info

To be able to commit back to Git via the user interface, Cubonacci needs credentials for a user or a service account that has write access to the repository. If you have added the repository using the GitHub integration this will be done automatically.

Creating a notebook

Create a notebook

At the Notebooks entry in the navigation menu, you can see the different existing notebooks for the current project. Clicking on the plus sign allows you to create a new one. As seen in the screenshot, you can give a name to the notebook and choose a commit that will be connected to the notebook in the Cubonacci IDE.

Next to this, you get the choice to fill the notebook with code that represents a full training flow, based on the contents of the commit. This makes analysis, additional development and debugging a breeze. Alternatively, you can start with a clean slate.

Last but not least you can specify the resources that will be allocated to your notebook environment. These resources are made available inside Cubonacci and the code is run remotely.

Functionality

Import from IDE

All the files from the Cubonacci IDE are available for import via the commit path.

Example:

from commit.data_loader import DataLoader
data_loader = DataLoader()

Saving changes in IDE

Every update that you make to code in the Cubonacci IDE is automatically saved and available for import. The only exception to this rule is the requirements.txt file. By clicking the Reload button changes to your dependencies are saved which triggers updating your environment.

Saving notebook

A notebook can be saved by either clicking the Save notebook button on the top right or by pressing Ctrl+S. Next time you open the notebook all the cells will be there.