Top JupyterLab Extensions for Machine Learning Research

JupyterLab is fundamentally intended to be an extendable environment. Any component of JupyterLab can be enhanced or customized using JupyterLab extensions. New themes, file viewers and editors, or renderers enabling rich outputs in notebooks are some of the things they can offer. Keyboard shortcuts, settings in the system, and items to the menu or command panel can all be added via extensions. Extensions can depend on other extensions and offer an API for use by other extensions. JupyterLab is nothing more than a collection of extensions that are no more privileged or powerful than any further custom extension. A JupyterLab extension is merely a plug-and-play accessory that expands your options for achieving your goals. Technically speaking, the JupyterLab extension is a JavaScript library that can enhance the JupyterLab interface with various interactive features.

Top JupyterLab Extension
Debugger

Debugging is a crucial step in removing any potential problems from our code. Now that debugging in various IDEs is simple, you can do it directly in the Jupyter notebook. Since it comes pre-installed with JupyterLab 3.x, there is no need to download it separately. It is supported by two kernels as of right now.

Google Drive for JupyterLab

We use Google Drive to store our data in the cloud so that we can access it at any time. Adding a button or command makes adding Google Drive to Google Colab simpler. Similar to how it helped us use Google Drive in JupyterLab, this plugin will enable us to access our Google Drive files from within our notebooks.

A Google Drive file browser is added by this add-on to JupyterLab’s left sidebar. The files in your GDrive will be accessible to JupyterLab when you are signed into your Google account.

JupyterLab Celltags

Users may quickly create, examine, and change descriptive tags for notebook cells with the JupyterLab cell tags plugin. The add-on allows picking every cell that matches a specific tag, enabling the execution of any operation on those cells. You do not need to download the JupyterLab celltags extension separately because it is officially included with JupyterLab 3.x.

JupyterLab system monitor

We frequently execute our programs on Jupyter notebooks without knowing how much memory is used. As a result, our laptop often freezes and stops functioning because of memory issues. We would benefit from knowing the current CPU and memory consumption statistics. A Jupyter notebook add-on called JupyterLab system monitor shows system data, including CPU and memory utilization.

Tabnine for JupyterLab

Typing code is complex without auto-complete options, especially when first starting out. In addition to the spent time inputting method names, the absence of auto-complete promotes shorter naming styles, which is not ideal.

For a development environment to be effective, auto-complete is crucial. With machine learning, TabNine can reliably predict what you might want to write next before you start by filling in the names of methods or variables you have already begun typing. That can include method names from libraries whose names you’ve forgotten, which saves a lot of time searching online.

JupyterLab Spreadsheet

You must occasionally work with spreadsheets in your role as a data scientist or data engineer. The inability of Jupyter to read Excel files natively leads us to hop between several programs to transition between using Jupyter for coding and Excel for viewing.

This challenge is expertly resolved by jupyterlab-spreadsheet. Thanks to the inbuilt Xls/xlsx spreadsheet viewing capability in the Jupyter Lab, we can find everything we need in one location.

JupyterLab Matplotlib

If you’re a data scientist, Matplotlib is a Python library you absolutely must master. It is a straightforward yet effective Python program for data visualization. However, the interactive component is no longer present when we use Jupyter Lab.

Your Matplotlib can become interactive once more with the jupyter-matplotlib plugin. Your lovely 3D chart will become interactive by enabling it with the magic command%matplotlib widget.

JupyterLab Git

It would be imprudent not to utilize Git when writing any code, no matter how simple. Git makes it possible to trace changes over time, giving you peace of mind that your code won’t get lost, rewritten, or incorrectly changed. Without Git, programming is essentially playing with Murphy’s Law.

Jupiter’s Git plugin provides seamless integration into the program. It is quicker and more straightforward and will encourage you to push code changes more frequently to use Git from within Jupyter. This may prevent you from losing work and enable you to make more precise modifications that you can roll back to in the event of errors.

JupyterLab Variable Inspector

Using breakpoints and kernel steppers, the debugger extension aids in problem-solving. The values of various objects, such as graphic elements and code variables, are revealed via the Variable Inspector. A resource you’d be happy to have the first time you run into a problem. This is a given while coding.

JupyterLab Templates

You can go from Jupyter Notebooks to JupyterLab with this add-on. This plugin converts Jupyter notebook templates to Jupyter Lab, so you may continue to use them. You might want to use some older Jupyter Notebook templates even if you’re just starting with Jupyter. This extra time will enable you to.

JupyterLab TensorBoard

A frontend plugin for TensorBoard on JupyterLab is called JupyterLab TensorBoard. As a tensorboard backend, it makes use of the jupyter tensorboard project. By offering a graphical user interface for tensorboard to start, manage, and stop in the jupyter interface, it facilitates collaboration between jupyter notebook and tensorboard (a visualization tool for tensorflow).

Jupyter ML-workspace

An all-encompassing web-based integrated development environment created explicitly for machine learning, and data science is known as the ML workspace.

It allows you to effectively create ML solutions on your own devices and is straightforward to deploy. This workspace is a general-purpose solution for programmers that comes preloaded with a variety of well-known data science libraries (such as Tensorflow, PyTorch, Keras, and Sklearn) and development tools (such as Jupyter, VS Code, and Tensorboard), all of which have been flawlessly configured, optimized, and integrated.

JupyterLab jupytext

A few Jupytext commands are added to the command palette by this addition. Although it is a modest feature, it can aid in notebook navigation. It can be used to choose the ideal text/ipynb match for your notebook.

JupyterLab nbgather

A JupyterLab add-on called nbgather provides tools for debugging, finding lost code, and comparing code versions. The add-on stores a history of all the code you’ve run along with any outputs it generates in the notebook’s metadata. After downloading the extension, you can tidy up and compare different code versions.

Since nbgather is still in the early stage of development, there might be some bugs. If you want to have organized and consistent notes, it’s worth an attempt.

JupyterLab NBdime

You can compare and merge Jupyter Notebooks using the functionality provided by this JupyterLab add-on. It can reach and connect notebooks intelligently since it is aware of the structure of notebook papers.

Here is a quick rundown of the key characteristics:

  • Easily compare notebooks using a terminal
  • combine three notebooks with automatic dispute resolution
  • See a richly illustrated comparison of notebooks.
  • Provide a three-way merge tool for notebooks on the web.
  • View a single notebook in a convenient terminal format.
JupyterLab Voyager 

To see CSV and JSON data in Voyager 2, use the JupyterLab MIME renderer add-on called Voyager. It is an easy method that enables data visualization. The connection with Voyager provided by this plugin is minimal.

JupyterLab LaTeX

The bibliography is based on BibTeX, although it can also be customized. A JupyterLab add-on called LaTeX enables you to modify LaTeX texts in real-time. The extension uses Xelatex on the server, but you can adjust the command by changing the jupyter notebook config.py file.

Another customizable feature is the capacity to execute arbitrary code using external shell commands.

JupyterLab HTML

This one is a mime renderer for JupyterLab that renders HTML files in IFrame Tab. By double-clicking on.html files in the file browser, you can examine rendered HTML. A JupyterLab tab is opened to display files.

JupyterLab Table of Contents

Although it might not seem like a particular technical feature, a Table of Contents add-on for JupyterLab can be very helpful when scrolling through and seeking information.

When you have a notebook or markdown document open, it automatically creates a table of contents in the left section. The heading in question can be found by scrolling the document to the clickable entries.

JupyterLab Collapsible Headings

Collapsible Making headings collapsible is a valuable addition provided by headers. The caret icon created to the left of header cells can be clicked on, or a shortcut can be used to collapse or uncollapse a selected header cell (i.e., a markdown cell beginning with several “#”).

Jupyter Dash

Jupyter Dash library makes it simple to create Dash apps from Jupyter environments (e.g., classic Notebook, JupyterLab, Visual Studio Code notebooks,nteract, PyCharm notebooks, etc.).

Numerous beneficial characteristics include:

  • Block-free execution
  • External, inline, and JupyterLab display options
  • Hot reloading is the capacity to instantly update a web application that is currently executing when modifications are made to the program’s code.
  • A tiny user interface for reporting errors resulting from failed property validation and exceptions produced inside callbacks is called error reporting.
  • Proxy Detection in Jupyter
  • manufacturing deployment
  • Enterprise workspaces from Dash
JupyterLab SQL

The final one provides a SQL user interface to JupyterLab using the jupyterlab-SQL extension. With a point-and-click interface, you can explore your tables; using custom queries, you can read and edit your database.

References:

  • https://neptune.ai/blog/jupyterlab-extensions-for-machine-learning
  • https://www.tabnine.com/blog/top-jupyterlab-extensions/
  • https://towardsdatascience.com/10-jupyter-lab-extensions-to-boost-your-productivity-4b3800b7ca2a
  • https://github.com/mauhai/awesome-jupyterlab
  • https://www.analyticsvidhya.com/blog/2021/05/5-must-have-jupyterlab-extension-for-data-science/

Prathamesh Ingle is a Consulting Content Writer at MarktechPost. He is a Mechanical Engineer and working as a Data Analyst. He is also an AI practitioner and certified Data Scientist with interest in applications of AI. He is enthusiastic about exploring new technologies and advancements with their real life applications