Apply Datasets and Pre-Trained Models Faster and Easier with PerceptiLabs

Martin Isaksson
6 min readNov 12, 2021

--

Image Source.

Despite the growth of AI over the last few years, organizations embarking on their own applied ML (i.e., using their own data and model for real-world inference) often struggle, and usually fail, for a variety of reasons.

ML practitioners are often not sure where to start and how to complete their ML projects. Despite all of the new ML tools, many of which are open source, working with them can be complicated, requiring programming and/or PhD-level knowledge. Furthermore, these tools often focus on one area of the ML modeling workflow rather than an end-to-end user experience that encompasses data collection and modeling right through to exporting for real-world inference. Projects often languish or never get out of the experimental phase.

We recognized these issues, and built Perceptilabs to help you create and apply your DL models to real-world problems, easier, and quicker. How did we do that? Glad you asked!

The answer lies in a good starting point and the tools to get to a working model as efficiently as possible. Our solution includes easy access to datasets and pre-built models, along with a rich set of tools to easily transform those resources into working, exported models that you can use for real-world inference. And, programming or PhD-level knowledge for accomplishing this? — it’s now optional.

Let’s take a closer look at how you can be applying your ML faster.

Accessible Datasets

Using an existing dataset is one of the best ways to get started. Nowadays, you can find publicly-available datasets online for almost anything you can think of — healthcare to automotive and everything in between. Some datasets consist of raw data that you may need to organize, curate, and pre-process, while others have done that for you.

In PerceptiLabs’ Top 5 Open Source Datasets for Machine Learning we listed a few sources including Kaggle, which has quickly become one of our favourites due to its vast collection of datasets. In fact, many of our recent use cases are based around curated datasets that originated from Kaggle, which we’ve made available on GitHub. In most cases we’ve also included a CSV file to load this data into PerceptiLabs. This CSV file maps each data file to its classifications. You then load the CSV into PerceptiLabs which it uses to import your data files and set up a model with good baseline settings.

Existing Datasets Ready to Go

Alternatively, you can let PerceptiLabs do this for you. As of 0.13, PerceptiLabs, can now directly load a number of publicly-available datasets and automatically create models from them as shown in Figure 1:

Figure 1: PerceptiLabs 0.13+ automates the creation of models from a number of public datasets.
Figure 1: PerceptiLabs 0.13+ automates the creation of models from a number of public datasets.

This means you can pick your data and achieve a working model very quickly without having to create the CSV file. For example, using the public Face Ages dataset listed in Figure 1, Figure 2 shows the model generated by PerceptiLabs:

Figure 2: Example of face age prediction model automatically generated by PerceptiLabs.
Figure 2: Example of face age prediction model automatically generated by PerceptiLabs.

Pre-processing Data Saves you Time

Pre-processing this data is also important, and PerceptiLabs has you covered here too. When you define the data in PerceptiLabs’ Data Settings popup, you have the option to configure pre-processing options for certain columns (e.g., a column that lists image files). In Figure 3 below, you can see some of the pre-processing options available for images (e.g., resize, etc.):

Figure 3: Pre-processing options for images in PerceptiLabs.
Figure 3: Pre-processing options for images in PerceptiLabs.

Having PerceptiLabs perform this pre-processing for you saves you time, because you don’t have to manually perform this for each image, or conjure up some sort of external data pipeline. In addition, these settings are saved as part of your project in PerceptiLabs, so you can easily change them at any time to experiment with different settings. This also eliminates the need to hunt down these settings in the future, a task that would normally be required with external processes.

Once you have all of this set up, you can easily swap in your own data (e.g., a different CSV) to take the model in new directions or expand on its capabilities.

Customizing Models and Components

One of the greatest aspects of PerceptiLabs’ visual approach is that you can ease into the customization of your model based on your requirements and/or skill level. You can choose to do everything visually, including replacing Components, adjusting their settings, and configuring both data and training settings. Figure 4 below shows the settings for a Convolution Component:

Figure 4: Component Settings in Perceptilabs.
Figure 4: Component Settings in Perceptilabs.

For you low-coders, you can do all of the above, plus easily view the TensorFlow code for any Component in the Code Editor and make adjustments to Components programmatically as shown in Figure 5:

Figure 5: Code Editor in PerceptiLabs for programmatic customization of Components.
Figure 5: Code Editor in PerceptiLabs for programmatic customization of Components.

Pre-trained Models

Another option to get to applied ML faster is to employ pre-trained models. You’ll see in many of our use cases we employ Deep Learning Components like VGG16, which have been pre-trained with ImageNet data. Using these Components is easy with PerceptiLabs because you can easily swap them in.

For example, in our Classifying Fruit use case, we took the baseline model that PerceptiLabs created from the data, removed the Convolution and Dense components, and replaced them with a single VGG16 Component. Another example is our Basic Image Segmentation tutorial where we use a single U-Net Component that provides the option to select different backbone models.

You can also use our Custom Component to take things even further and programmatically implement a Component from scratch. Using this, you can import external modules and take advantage of external resources for applied DL. To make this work, all you have to do is create a new Custom Component by opening the Code Editor and start writing TensorFlow code. You can use it in a variety of ways such as to load Keras Applications for Transfer Learning or to load a model from TensorFlow Hub. For example, the following code shows the two lines you’d need to add in order to load a model from TensorFlow hub:

import tensorflow_hub as hub

input_=hub.KerasLayer(“https://tfhub.dev/google/bit/s-r50x1/ilsvrc2012_classification/1”)(input_)

After adding this code, you can then use the model returned in the input_ variable for making predictions. For additional details on setting this up, see this posting in the PerceptiLabs forums.

Apply your Deep Learning Now

Using publicly-available datasets, pre-trained models, and the rich tools provided by PerceptiLabs, ML practitioners of different backgrounds and skill levels can easily and efficiently get to a working model faster. In addition, our low-code, visual approach allows you to decide how much you want to customize your model based on your skill level and/or project requirements. Collectively, these tools and resources help you apply DL models to real-world use cases, faster and easier.

Ready to start building and applying your DL models? Follow our Quickstart guide to get started with PerceptiLabs today!

--

--

Martin Isaksson
Martin Isaksson

Written by Martin Isaksson

Martin Isaksson is Co-Founder and CEO of PerceptiLabs, a startup focused on making machine learning easy.

No responses yet