# Machine Learning on Mobile

Deploy, share, and explore machine learning models on mobile.

## Welcome to Pallet <a href="#id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2" id="id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2"></a>

![](/files/-MO4vZhHJYCVsxHan-Cx)

* **Deploy** custom machine learning models to mobile **without code**, and try them in the **real world**
* **Share** a link to any model with one tap
* Make **predictions** with **state-of-the-art** models anytime
* **Explore** dozens of models made by the ML **community**

## Background

The technology for building AI-enhanced applications is more accessible than ever before, but the process of actually building & distributing these 'smart apps' can still be a challenge.

Pallet is a no-code platform that enables you to **quickly turn machine learning models into shareable apps**, and access them anytime through a simple consistent interface.

## Get Started

* Create your first no-code smart app in less than 15 minutes:

{% content-ref url="/pages/-MMEc-O4zIXHIjinxTB0" %}
[Your First No-Code Smart App](/0.3.0/quickstart/your-first-no-code-smart-app)
{% endcontent-ref %}

* Explore Palle&#x74;**:**

  [Download the app](https://play.google.com/store/apps/details?id=com.palletml.app) then check out the [Explore](/0.3.0/explore-1/explore) section of this guide to see everything you can do:

  [<img src="/files/-MMHOOWLngU6h8IAfmHV" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)

{% content-ref url="/pages/-MMEoU4blnyOC0eCWSim" %}
[Explore](/0.3.0/explore-1/explore)
{% endcontent-ref %}


# Your First No-Code Smart App

Learn how to create an image classification app with Pallet in under 15 minutes, without code!

![](/files/-MME79LXyHLfPZLdCJ_1)

## Introducing Pallet <a href="#id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2" id="id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2"></a>

The technology for building AI-enhanced applications is more accessible than ever before, but the process of actually building & distributing these 'smart apps' can still be a challenge.

Pallet is a no-code platform that enables you to **quickly turn machine learning models into shareable apps**, and access them anytime through a simple consistent interface.

In this tutorial you will **use Pallet to create an image classification app just 15 minutes**.

If you only want to explore Pallet, just [download the app](https://play.google.com/store/apps/details?id=com.palletml.app) and check out the [Explore](/0.3.0/explore-1/explore) section of this guide to see everything you can do.

## Create an Image Classification App <a href="#id-049a05ca-364a-4b01-adbb-435055e51650" id="id-049a05ca-364a-4b01-adbb-435055e51650"></a>

Creating an image classification app with Pallet is overall just a quick 3-step process:

1. **Create a new Project**,
2. **Upload your model assets**, and
3. **Tune your Project’s settings according to your model**

All you need to get started is an image classification model and corresponding set of classification labels - a common pair of files we call model **assets**.

{% hint style="info" %}
Don't worry if you don't have these assets ready. Use one of our [example models](/0.3.0/quickstart/your-first-no-code-smart-app#prepare-your-model) to get started quickly.
{% endhint %}

Currently, Pallet supports [**TensorFlow Lite**](https://www.tensorflow.org/lite) models trained for image classification, and will eventually support models and frameworks designed for a variety of different tasks.

In this tutorial, you will use the [Pallet Web Console](https://app.palletml.com) to deploy a model to your phone. In another tutorial we'll show you how to deploy models right from the [Pallet app](https://play.google.com/store/apps/details?id=com.palletml.app) itself.

Let's start by preparing your model assets for deployment.

## Prepare Your Model

To create a classification app with Pallet, you just need a TensorFlow Lite model and a corresponding list of labels.

If you already have these model assets, you're ready to deploy, and you can skip this step. If you don't have model assets on hand, get started with a pre-built model, or follow one of our tutorials on quickly building and training custom image classification models:

&#x20;   [**I have a model ↓**](/0.3.0/quickstart/your-first-no-code-smart-app#deploy-your-model-with-pallet)

&#x20;   [**Create a custom image classification model →**](/0.3.0/create-image-classifiers)

&#x20;   [**Download a pre-built image classification model →**](/0.3.0/quickstart/download-pre-built-models)\
&#x20;   Examples below:

{% tabs %}
{% tab title="🤖 MobileNet" %}
Developed by Google, this model can classify 1,000 different objects - from umbrellas to volcanoes!

{% file src="/files/-MMI6JdzQRAqqHZhOYVi" %}
Download MobileNet assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}

{% tab title="🌼 FlowerNet" %}
Classifies daisies, dandelions, roses, sunflowers, and tulips.

{% file src="/files/-MMI6JdyieiVE9TBWkvM" %}
Download FlowerNet assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}

{% tab title="🐶 Dog Breeds" %}
This model can distinguish between 120 different dog breeds.

{% file src="/files/-MMI6JdqDvY5KIaNXJ3E" %}
Download Dog Breeds assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}

{% tab title="👊 Rock-Paper-Scissors" %}
This model can tell if you're throwing Rock, Paper, or Scissors from the classic game.

(For best results, take a picture of your hand in Rock, Paper, or Scissors formation over a clear plain surface.)

{% file src="/files/-MMI6JdvZIR73Zw3K\_Gp" %}
Download RPS assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}
{% endtabs %}

## Deploy Your Model With Pallet

1\. **Install Pallet** from the Google Play Store  [<img src="/files/-MMHOOWLngU6h8IAfmHV" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)&#x20;

&#x20;   and **Sign Up** to create a new account

![](/files/-MME79LcfyoP4lB6WgAJ)

2\. **In your computer browser**, **visit** [**app.palletml.com**](http://app.palletml.com/) in a new tab and **Log In** to the account you just created.

![](/files/-MME79LbZYnX1PSKBBT2)

3\. Every model you deploy with Pallet belongs to a Project. **Create a New Project** for your model.

![](/files/-MME79L_X1VJmedrg19Q)

4\. **Choose a name** for your project and click **Create**.

![](/files/-MME79La5YiPsDVrwT1j)

5\. **Browse** or **Drag & Drop** the model assets that you prepared earlier, then click **Upload**.

![](/files/-MME79LWMAnC3yM4JzmO)

&#x20;   **And that's it!** Your model is now deployed.:white\_check\_mark:

6\. **Return** to the **Pallet app**, navigate to your **Profile** :bust\_in\_silhouette:, and **pull to refresh** your list of Projects.

Your new Project will appear. :sparkles:&#x20;

![](/files/-MME79LZ-qzqKw7cYJrv)

7\. **Tap** your Project to open a detailed view. (You'll learn how to add details to your Project in another guide).

With Pallet, classification models for photos work **out of the box**, so you don't need to **tune** any settings for this project right now.&#x20;

![](/files/-MMHGXFepDLdtsdQnMvY)

8\. Now **Launch** your app :rocket: \
(Skip the Tune Settings dialog by tapping *Launch*)

You can **immediately** start classifying photos by taking a picture with your camera, selecting a picture stored on your device, or submitting a link to an image.

![](/files/-MME79LYqglUbtesC1IG)

9\. **Congratulations** :tada:&#x20;

**In just a few minutes, you were able to turn an image classification model into a mobile app, without any code!**

By deploying with Pallet, your model is infinitely **scalable**, easily **upgradable**, and ready to be **shared** with the world.

## Up Next

Now that you've got the hang of deploying models with Pallet:&#x20;

* Learn how to quickly **share your model with any number** friends, colleagues, and other users in just a few taps.

{% content-ref url="/pages/-MMNYENqAUG150Hzq8Z8" %}
[Share Your Model](/0.3.0/deploy/share-your-model)
{% endcontent-ref %}

* Learn how to train and deploy your own **custom image classification model**:

{% content-ref url="/pages/-MMH2ACkMTVRaWx03O0V" %}
[Create an Image Classifier](/0.3.0/create-image-classifiers)
{% endcontent-ref %}

* Create more classification apps from our **pre-built** models:

{% content-ref url="/pages/-MMEbmxz8mcJX6TqwDmm" %}
[Download Pre-Built Models](/0.3.0/quickstart/download-pre-built-models)
{% endcontent-ref %}

* **Explore more** of Pallet

{% content-ref url="/pages/-MMH2U5LOvR4V4Ocvlqj" %}
[Explore](/0.3.0/explore-1/explore)
{% endcontent-ref %}


# Download Pre-Built Models

Want to try Pallet but don't have a model handy? Download one of these pre-built models to get started now 👇

### **Image Classification Models**

{% hint style="info" %}
Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.
{% endhint %}

:robot: **Google's MobileNetV2**

Developed by Google, this model can classify 1,000 different objects - from umbrellas to volcanoes!

![Example images MobileNet was trained to classify](/files/-MMNNZPopFkDwrKZFqA5)

{% file src="/files/-MMI6JdzQRAqqHZhOYVi" %}
Download MobileNetV2
{% endfile %}

:sunflower: **FlowerNet**

This model classifies daisies, dandelions, roses, sunflowers, and tulips.

![Example images FlowerNet was trained to classify](/files/-MMNNlik9SulHtGbp6fZ)

{% file src="/files/-MMI6JdyieiVE9TBWkvM" %}
Download FlowerNet
{% endfile %}

:dog: **Dog Breeds**

This model can distinguish between 120 different dog breeds.

![Example images this model was trained to classify](/files/-MMNO79xPXCF5lF133Pm)

{% file src="/files/-MMI6JdqDvY5KIaNXJ3E" %}
Download Dog Breeds
{% endfile %}

:punch: **Rock-Paper-Scissors**

This model can tell if you're throwing Rock, Paper, or Scissors from the classic game.

It was trained on [3D generated images](http://www.laurencemoroney.com/rock-paper-scissors-dataset/) instead of photographs, so **for best results**, take a picture of your hand in Rock, Paper, or Scissors formation over a clear plain surface.

![Example images this model was trained to classify](/files/-MMNPLor3D6rEMdrqQQr)

{% file src="/files/-MMI6JdvZIR73Zw3K\_Gp" %}
Download Rock-Paper-Scissors
{% endfile %}

### Deploy Your Model

Now that you have model assets prepared, head back over to the tutorial to turn your model into a shareable image classification app:

{% content-ref url="/pages/-MMEc-O4zIXHIjinxTB0" %}
[Your First No-Code Smart App](/0.3.0/quickstart/your-first-no-code-smart-app)
{% endcontent-ref %}


# Deploy Your Model

## Deploy Your Model With Pallet

1\. **Install Pallet** from the Google Play Store  [<img src="/files/-MMHOOWLngU6h8IAfmHV" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)&#x20;

&#x20;   and **Sign Up** to create a new account

![](/files/-MME79LcfyoP4lB6WgAJ)

2\. **In your computer browser**, **visit** [**app.palletml.com**](http://app.palletml.com/) in a new tab and **Log In** to the account you just created.

![](/files/-MME79LbZYnX1PSKBBT2)

3\. Every model you deploy with Pallet belongs to a Project. **Create a New Project** for your model.

![](/files/-MME79L_X1VJmedrg19Q)

4\. **Choose a name** for your project and click **Create**.

![](/files/-MME79La5YiPsDVrwT1j)

5\. **Browse** or **Drag & Drop** the model assets that you prepared earlier, then click **Upload**.

![](/files/-MME79LWMAnC3yM4JzmO)

&#x20;   **And that's it!** Your model is now deployed.:white\_check\_mark:

6\. **Return** to the **Pallet app**, navigate to your **Profile** :bust\_in\_silhouette:, and **pull to refresh** your list of Projects.

Your new Project will appear. :sparkles:&#x20;

![](/files/-MME79LZ-qzqKw7cYJrv)

7\. **Tap** your Project to open a detailed view.&#x20;

With Pallet, classification models for photos work **out of the box**, so you don't need to **tune** any settings for this project right now. For other types of models, see the appropriate guide.

![](/files/-MMHGXFepDLdtsdQnMvY)

8\. Now **Launch** your app :rocket: \
(Skip the Tune Settings dialog by tapping *Launch*)

You can **immediately** start classifying photos by taking a picture with your camera, selecting a picture stored on your device, or submitting a link to an image.

![](/files/-MME79LYqglUbtesC1IG)

9\. **Congratulations** :tada:&#x20;

By deploying with Pallet, your model is infinitely **scalable**, easily **upgradable**, and ready to be **shared** with the world.


# Share Your Model

Models deployed with Pallet are **private by default**, which means only you have access to them.

To share your model, you just need to make it **public**, then you can easily **share a unique link** to your model with any number of friends, colleagues, and other users **in just a few taps**.

## Share

1.To share your model, you first need to make it **Public**.

From the Project **Overview**, tap the **Edit** icon to access Project **Settings**.&#x20;

![](/files/-MMNkUMDuCfTcmJIaFM0)

2\. Toggle the **Public** switch to **On**, then tap **OK** on the Enable Sharing dialog that follows.

![](/files/-MMNkXLt1esGYdmd2leQ)

3\. Tap **Update** to save these settings.

![](/files/-MMNkfREQF9bMS3vqn98)

:white\_check\_mark:And that's it. Now you can **Share** a link to your model from the Project Overview.

Pallet **share links** have the form [*share.palletml.com/xyz*](http://share.palletml.com/xyz) and **open directly to your model** when activated.

![](/files/-MMNkhiMrn4shtui28l1)


# Explore

Coming soon...


# Create an Image Classifier

## No-Code Tools

### Google's Teachable Machine

**Train & deploy** a **custom** model with Google's [Teachable Machine](https://teachablemachine.withgoogle.com/)

![](/files/-MNodZd46AwKGIrf7zDV)

{% content-ref url="/pages/-MNZwp4sH7AmSVQQ2Wko" %}
[Google Teachable Machine (No-Code)](/0.3.0/create-image-classifiers/teachable-machine)
{% endcontent-ref %}

### **Lobe.ai**

**Train & deploy** a **custom** model with [Lobe.ai](http://lobe.ai/)

![](/files/-MNoceos4EKK8RSSrtZS)

***Coming soon...***

## **TensorFlow**

![](/files/-MNoezM3jUNjVHglhHw5)

**Build, train & deploy** a **custom** model with **TensorFlow + Keras**

**PalletML** will work with **any image classification model** developed with TensorFlow. Just convert your model to **TensorFlow Lite**, prepare a plaintext labels file, and follow the [steps for deployment](/0.3.0/deploy/deploy-your-model).

We'll include a demo Colab notebook here soon...&#x20;


# Google Teachable Machine (No-Code)

Create an image classification model using Google's Teachable Machine and deploy it to a mobile app with PalletML.

![](/files/-MNno_G4DBRSdnNB_XOI)

## Intro

An image classifier is a machine learning model that recognizes images. When you give it an image, it responds with a category label that represents the content of that image.

![](/files/-MNnp1DQav8HHqkDacsc)

[Teachable Machine](https://teachablemachine.withgoogle.com/) is a web-based tool built on [TensorFlow](http://tensorflow.org/) that makes creating machine learning models - like image classifiers - fast, easy, and accessible.

In this tutorial, you will use Teachable Machine to train a powerful image classification model that you can deploy as an app using PalletML - all without writing any code!

## Overview

You train an image classifier by showing it samples of labeled images. For example, you can train an image classifier to recognize different flowers by showing it a variety of pictures of roses, tulips, sunflowers, etc.

![](/files/-MNnpuaZbL2lbuZNo81D)

There are three general steps involved in training an image classification model with Teachable Machine:

1. **Gathering sample images**
2. **Training the model, and**
3. **Testing the model**

After you've trained the model to your satisfaction, you can **export** it as a file and **deploy** it to mobile using Pallet.

Let's start by gathering example images for training.

{% hint style="info" %}
Training takes place within the browser. The data stays in your machine without being moved to the cloud.:lock:
{% endhint %}

## Gather Your Data

Once you decide what objects you want your model to be able to recognize, you need to collect and organize sample images for each label. It's common to sort these sample images into subfolders by label (or **class**)**.**

For example, say we want to create a classifier that can recognize 5 different types of flowers: *daisies*, *dandelions*, *roses*, *sunflowers*, and *tulips*. We would collect and organizes pictures of each of these different types of flowers into the following folder structure:

![](/files/-MNnqyqimeJYNh2Hxc4q)

**If you want to get started quickly without creating your own image dataset**, we've included a structured dataset of flower images for you to use for training. Download it from the following link and unzip the folder to your computer: [Flower Photos.zip (Google Drive)](https://drive.google.com/file/d/1J2Dj7HB9EN4smixmW7RV0crT8B0AxTds/view?usp=sharing)

{% hint style="info" %}
For an even quicker start, you can use your webcam with Teachable Machine to capture training images. Check out [this](https://youtu.be/DFBbSTvtpy4) video to see how you can gather image data using your computer camera.\ <img src="/files/-MNnrR6tcpMbFCJ2pg9R" alt="" data-size="original">&#x20;
{% endhint %}

## Train an Image Classifier

Now that you've prepared a dataset, we can easily create an image classifier using Teachable Machine.&#x20;

**Start by visiting**: [teachablemachine.withgoogle.com/train/image](https://teachablemachine.withgoogle.com/train/image)

**Add a class** for each label in your dataset. (For the flowers dataset above we would add 5 classes). Then **rename** each class to something meaningful, such the name of a label.

![](/files/-MNntAZLfICDIp3JKNri)

Next, **Upload** each folder of sample images to the corresponding class. You can either browse for the folder of images, or simply drag and drop the entire folder into the window.

![](/files/-MNntOVAG83TipbqP_tq)

Now **Train** your model. This step will take a few minutes.

{% hint style="info" %}
Remember, all of the training happens locally on your computer, and machine learning is a computationally heavy process, so don't worry if the webpage appears to be sluggish for a few minutes. :woman\_lifting\_weights:&#x20;
{% endhint %}

![](/files/-MNntiUnp6We82kFoc6G)

## Test Your Model

Once your model finishes training, you can immediately test it in the **Preview** pane that becomes available on the right. Just toggle the **Input** to **File**, and browse for - or drag & drop - a sample flower picture. The sample picture can come from your dataset or anywhere else, like Google Image Search.

![](/files/-MNntyfRPatXMmw48dbW)

If your model is not performing as well as you'd like, you may want to try adding more example pictures to each class and retraining. Otherwise, it's **time to turn your model into an app!**

## Export Your Model

To deploy your model to mobile using Pallet, you first need to save it to a file.

Click **Export Model** in the Preview pane on the right.

![](/files/-MNnxi7R0ubxb01Sr3hn)

In the window that pops up, select the **TensorFlow Lite** tab, and under *Model conversion type* ensure the **Floating point** option is selected. Then click **Download my model**.

Your TensorFlow model will be converted to TensorFlow Lite (optimized for mobile devices), packaged with your labels, and downloaded to your computer (this step should only take 1-2 minutes).

![](/files/-MNnxsL2ieqjmFE7iDo2)

Unzip the `converted_tflite.zip` file to confirm that you have a TensorFlow Lite model and labels.

![](/files/-MNny0DSKEW5kRy9AOKq)

:white\_check\_mark: **You're all set to deploy your model to Pallet!**

{% content-ref url="/pages/-MNZwp4sH7AmSVQQ2Wko" %}
[Google Teachable Machine (No-Code)](/0.3.0/create-image-classifiers/teachable-machine)
{% endcontent-ref %}

## Up Next

In this tutorial you learned how to create a standard, yet powerful image classification model using Teachable Machine, and deploy it as a mobile app using PalletML.

However, **Teachable Machine's training process is constrained in ways that limit the predictive power of models it produces.**

To learn more about limitations of tools like Teachable Machine, and how to **create more powerful models that can be used in the real-world**, continue on to the next section. (coming soon...)


# Machine Learning on Mobile

Deploy, share, and explore machine learning models on mobile.

## 👋 Welcome to Pallet  <a href="#id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2" id="id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2"></a>

![](/files/-MO4vZhHJYCVsxHan-Cx)

* **Deploy** custom machine learning models to mobile **without code**, and try them in the **real world**
* **Share** a link to any model with one tap
* Make **predictions** with **state-of-the-art** models anytime
* **Explore** dozens of models made by the ML **community**

## Background

The technology for building AI-enhanced applications is more accessible than ever before, but the process of actually building & distributing these 'smart apps' can still be a challenge.

Pallet is a no-code platform that enables you to **quickly turn machine learning models into shareable apps**, and access them anytime through a simple consistent interface.

## Get Started

* Create your first no-code smart app in less than 10 minutes:

{% content-ref url="/pages/-MMEc-O4zIXHIjinxTB0" %}
[Your First No-Code Smart App](/getting-started/tutorials/your-first-no-code-smart-app)
{% endcontent-ref %}

* Explore Palle&#x74;**:**

  [Download the app](https://play.google.com/store/apps/details?id=com.palletml.app) then check out the [Explore](/explore-1/explore) section of this guide to see everything you can do:

  [<img src="/files/-MMHOOWLngU6h8IAfmHV" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)

{% content-ref url="/pages/-MMEoU4blnyOC0eCWSim" %}
[Explore Pallet](/explore-1/explore)
{% endcontent-ref %}


# Quick Start - Deploy a Model

Deploy an image classification model with Pallet and start making predictions in just 5 minutes.

## 1. Get Pallet

**Install Pallet** from the Play Store (or **Scan** the QR Code) and **Sign Up** to create an account.

&#x20;[<img src="/files/-MVcUg6H3R1Zwnao5wnC" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)&#x20;

<img src="/files/-MVcT_GkU0XvALSrV4ku" alt="" data-size="original">&#x20;

## 2. Choose a Model

**Download** **MobileNet** below and **Unzip the model assets** to your computer. (Or [create your own model](/models/create-image-classifiers))

{% file src="/files/-MMI6JdzQRAqqHZhOYVi" %}
Download MobileNet assets
{% endfile %}

{% hint style="info" %}
These *assets* include a TensorFlow Lite image classification model & labels. [MobileNet](https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/README.md) is one of Google's state of the art vision models that can recognize 1,000 different objects. \
[See more pre-built models](/models/download-pre-built-models)
{% endhint %}

## 3. Deploy the Model

**Log In** to the [**web console**](https://app.palletml.com/) ([app.palletml.com](http://app.palletml.com/)) and **Create a New Project.**

**Browse** or **Drag & Drop** the model assets and click **Upload**.

![Drag, Drop, Deploy](/files/-MME79LWMAnC3yM4JzmO)

## 4. Start Making Predictions

**Go to** your **Profile** :bust\_in\_silhouette:in the Pallet app and **pull to refresh** to see your new Project.

**Open** the Project and **Launch** your app. *(Skip the Tune Settings dialog by tapping Launch again)*

You can **immediately** start classifying images by taking a picture with your camera, selecting a photo stored on your device, submitting link to an image, or going **real-time**.

![](/files/-MVnjtxbRNftBkXHhdiz)

:tada:**Congratulations** on deploying a model with Pallet! Your app is infinitely **scalable**, easily **upgradable**, and ready to be [**shared**](/deploy/share-your-model) with the world.

## Up Next

* Learn how to train and deploy your own **custom image classification model**:

{% content-ref url="/pages/-MMH2ACkMTVRaWx03O0V" %}
[Create an Image Classifier](/models/create-image-classifiers)
{% endcontent-ref %}

* Create more classification apps from **pre-built** models:

{% content-ref url="/pages/-MMEbmxz8mcJX6TqwDmm" %}
[Download Pre-Built Models](/models/download-pre-built-models)
{% endcontent-ref %}


# Tutorials


# Your First No-Code Smart App

Learn how to create an image classification app with Pallet in under 10 minutes, without code!

![](/files/-MME79LXyHLfPZLdCJ_1)

## Introducing Pallet <a href="#id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2" id="id-5afcd269-ed05-49dc-9aeb-aee6708e8cd2"></a>

The technology for building AI-enhanced applications is more accessible than ever before, but the process of actually building & distributing these 'smart apps' can still be a challenge.

Pallet is a no-code platform that enables you to **quickly turn machine learning models into shareable apps**, and access them anytime through a simple consistent interface.

In this tutorial you will **use Pallet to create an image classification app just 10 minutes**.

If you only want to explore Pallet, just [download the app](https://play.google.com/store/apps/details?id=com.palletml.app) and check out the [Explore](/explore-1/explore) section of this guide to see everything you can do.

## Create an Image Classification App <a href="#id-049a05ca-364a-4b01-adbb-435055e51650" id="id-049a05ca-364a-4b01-adbb-435055e51650"></a>

Creating an image classification app with Pallet is overall just a quick 3-step process:

1. **Create a new Project**,
2. **Upload your model assets**, and
3. **Tune your Project’s settings according to your model**

All you need to get started is an image classification model and corresponding set of classification labels - a common pair of files we call model **assets**.

{% hint style="info" %}
Don't worry if you don't have these assets ready. Use one of our [example models](/getting-started/tutorials/your-first-no-code-smart-app#prepare-your-model) to get started quickly.
{% endhint %}

Currently, Pallet supports [**TensorFlow Lite**](https://www.tensorflow.org/lite) models trained for image classification, and will eventually support models and frameworks designed for a variety of different tasks.

In this tutorial, you will use the [Pallet Web Console](https://app.palletml.com) to deploy a model to your phone. In another tutorial we'll show you how to deploy models right from the [Pallet app](https://play.google.com/store/apps/details?id=com.palletml.app) itself.

Let's start by preparing your model assets for deployment.

## Prepare Your Model

To create a classification app with Pallet, you just need a TensorFlow Lite model and a corresponding list of labels.

If you already have these model assets, you're ready to deploy, and you can skip this step. If you don't have model assets on hand, get started with a pre-built model, or follow one of our tutorials on quickly building and training custom image classification models:

&#x20;   [**I have a model ↓**](/getting-started/tutorials/your-first-no-code-smart-app#deploy-your-model-with-pallet)

&#x20;   [**Create a custom image classification model →**](/models/create-image-classifiers)

&#x20;   [**Download a pre-built image classification model →**](/models/download-pre-built-models)\
&#x20;   Examples below:

{% tabs %}
{% tab title="🤖 MobileNet" %}
Developed by Google, this model can classify 1,000 different objects - from umbrellas to volcanoes!

{% file src="/files/-MMI6JdzQRAqqHZhOYVi" %}
Download MobileNet assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}

{% tab title="🌼 FlowerNet" %}
Classifies daisies, dandelions, roses, sunflowers, and tulips.

{% file src="/files/-MMI6JdyieiVE9TBWkvM" %}
Download FlowerNet assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}

{% tab title="🐶 Dog Breeds" %}
This model can distinguish between 120 different dog breeds.

{% file src="/files/-MMI6JdqDvY5KIaNXJ3E" %}
Download Dog Breeds assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}

{% tab title="👊 Rock-Paper-Scissors" %}
This model can tell if you're throwing Rock, Paper, or Scissors from the classic game.

(For best results, take a picture of your hand in Rock, Paper, or Scissors formation over a clear plain surface.)

{% file src="/files/-MMI6JdvZIR73Zw3K\_Gp" %}
Download RPS assets
{% endfile %}

*Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer.*
{% endtab %}
{% endtabs %}

## Deploy Your Model With Pallet

1\. **Install Pallet** from the Google Play Store  [<img src="/files/-MMHOOWLngU6h8IAfmHV" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)&#x20;

&#x20;   and **Sign Up** to create a new account

![](/files/-MME79LcfyoP4lB6WgAJ)

2\. **In your computer browser**, **visit** [**app.palletml.com**](http://app.palletml.com/) in a new tab and **Log In** to the account you just created.

![](/files/-MME79LbZYnX1PSKBBT2)

3\. Every model you deploy with Pallet belongs to a Project. **Create a New Project** for your model.

![](/files/-MME79L_X1VJmedrg19Q)

4\. **Choose a name** for your project and click **Create**.

![](/files/-MME79La5YiPsDVrwT1j)

5\. **Browse** or **Drag & Drop** the model assets that you prepared earlier, then click **Upload**.

![](/files/-MME79LWMAnC3yM4JzmO)

&#x20;   **And that's it!** Your model is now deployed.:white\_check\_mark:

6\. **Return** to the **Pallet app**, navigate to your **Profile** :bust\_in\_silhouette:, and **pull to refresh** your list of Projects.

Your new Project will appear. :sparkles:&#x20;

![](/files/-MME79LZ-qzqKw7cYJrv)

7\. **Tap** your Project to open a detailed view. (You'll learn how to add details to your Project in another guide).

With Pallet, classification models for photos work **out of the box**, so you don't need to **tune** any settings for this project right now.&#x20;

![](/files/-MMHGXFepDLdtsdQnMvY)

8\. Now **Launch** your app :rocket: \
(Skip the Tune Settings dialog by tapping *Launch*)

You can **immediately** start classifying photos by taking a picture with your camera, selecting a picture stored on your device, or submitting a link to an image.

![](/files/-MME79LYqglUbtesC1IG)

9\. **Congratulations** :tada:&#x20;

**In just a few minutes, you were able to turn an image classification model into a mobile app, without any code!**

By deploying with Pallet, your model is infinitely **scalable**, easily **upgradable**, and ready to be **shared** with the world.

## Up Next

Now that you've got the hang of deploying models with Pallet:&#x20;

* Learn how to quickly **share your model with any number** friends, colleagues, and other users in just a few taps.

{% content-ref url="/pages/-MMNYENqAUG150Hzq8Z8" %}
[Share a Model](/deploy/share-your-model)
{% endcontent-ref %}

* Learn how to train and deploy your own **custom image classification model**:

{% content-ref url="/pages/-MMH2ACkMTVRaWx03O0V" %}
[Create an Image Classifier](/models/create-image-classifiers)
{% endcontent-ref %}

* Create more classification apps from our **pre-built** models:

{% content-ref url="/pages/-MMEbmxz8mcJX6TqwDmm" %}
[Download Pre-Built Models](/models/download-pre-built-models)
{% endcontent-ref %}

* **Explore more** of Pallet

{% content-ref url="/pages/-MMH2U5LOvR4V4Ocvlqj" %}
[Explore](/explore-1/explore)
{% endcontent-ref %}


# Deploy a Model

All you need is a [**TensorFlow Lite**](https://www.tensorflow.org/lite) model trained for image classification and corresponding list of labels.

{% hint style="info" %}
If you don't have these assets ready. Use one of our [example models](/models/download-pre-built-models) to get started quickly.
{% endhint %}

## Deploy Your Model With Pallet

1\. **Install Pallet** from the Google Play Store  [<img src="/files/-MMHOOWLngU6h8IAfmHV" alt="" data-size="original">](https://play.google.com/store/apps/details?id=com.palletml.app)&#x20;

&#x20;   and **Sign Up** to create a new account

![](/files/-MME79LcfyoP4lB6WgAJ)

2\. **In your computer browser**, **visit** [**app.palletml.com**](http://app.palletml.com/) in a new tab and **Log In** to the account you just created.

![](/files/-MME79LbZYnX1PSKBBT2)

3\. Every model you deploy with Pallet belongs to a Project. **Create a New Project** for your model.

![](/files/-MME79L_X1VJmedrg19Q)

4\. **Choose a name** for your project and click **Create**.

![](/files/-MME79La5YiPsDVrwT1j)

5\. **Browse** or **Drag & Drop** the model assets that you prepared earlier, then click **Upload**.

![](/files/-MME79LWMAnC3yM4JzmO)

&#x20;   **And that's it!** Your model is now deployed.:white\_check\_mark:

6\. **Return** to the **Pallet app**, navigate to your **Profile** :bust\_in\_silhouette:, and **pull to refresh** your list of Projects.

Your new Project will appear. :sparkles:&#x20;

![](/files/-MME79LZ-qzqKw7cYJrv)

7\. **Tap** your Project to open a detailed view.&#x20;

With Pallet, classification models for photos work **out of the box**, so you don't need to **tune** any settings for this project right now. For other types of models, see the appropriate guide.

![](/files/-MMHGXFepDLdtsdQnMvY)

8\. Now **Launch** your app :rocket: \
(Skip the Tune Settings dialog by tapping *Launch*)

You can **immediately** start classifying photos by taking a picture with your camera, selecting a picture stored on your device, or submitting a link to an image.

![](/files/-MME79LYqglUbtesC1IG)

9\. **Congratulations** :tada:&#x20;

By deploying with Pallet, your model is infinitely **scalable**, easily **upgradable**, and ready to be **shared** with the world.


# Share a Model

Models deployed with Pallet are **private by default**, which means only you have access to them.

To share your model, you just need to make it **public**, then you can easily **share a unique link** to your model with any number of friends, colleagues, and other users **in just a few taps**.

## Share

1.To share your model, you first need to make it **Public**.

From the Project **Overview**, tap the **Edit** icon to access Project **Settings**.&#x20;

![](/files/-MMNkUMDuCfTcmJIaFM0)

2\. Toggle the **Public** switch to **On**, then tap **OK** on the Enable Sharing dialog that follows.

![](/files/-MMNkXLt1esGYdmd2leQ)

3\. Tap **Update** to save these settings.

![](/files/-MMNkfREQF9bMS3vqn98)

:white\_check\_mark:And that's it. Now you can **Share** a link to your model from the Project Overview.

Pallet **share links** have the form [*share.palletml.com/xyz*](http://share.palletml.com/xyz) and **open directly to your model** when activated.

![](/files/-MMNkhiMrn4shtui28l1)


# Explore Pallet

Coming soon...&#x20;


# Create an Image Classifier

## No-Code Tools

### Google's Teachable Machine

**Train & deploy** a **custom** model with Google's [Teachable Machine](https://teachablemachine.withgoogle.com/)

![](/files/-MNodZd46AwKGIrf7zDV)

{% content-ref url="/pages/-MNZwp4sH7AmSVQQ2Wko" %}
[Google Teachable Machine (No-Code)](/models/create-image-classifiers/teachable-machine)
{% endcontent-ref %}

### **Lobe.ai**

**Train & deploy** a **custom** model with [Lobe.ai](http://lobe.ai/)

![](/files/-MNoceos4EKK8RSSrtZS)

***Coming soon...***

## **TensorFlow**

![](/files/-MNoezM3jUNjVHglhHw5)

**Build, train & deploy** a **custom** model with **TensorFlow + Keras**

**PalletML** will work with **any image classification model** developed with TensorFlow. Just convert your model to **TensorFlow Lite**, prepare a plaintext labels file, and follow the [steps for deployment](/deploy/deploy-your-model).

We'll include a demo Colab notebook here soon...&#x20;


# Google Teachable Machine (No-Code)

Create an image classification model using Google's Teachable Machine and deploy it to a mobile app with PalletML.

![](/files/-MNno_G4DBRSdnNB_XOI)

## Intro

An image classifier is a machine learning model that recognizes images. When you give it an image, it responds with a category label that represents the content of that image.

![](/files/-MNnp1DQav8HHqkDacsc)

[Teachable Machine](https://teachablemachine.withgoogle.com/) is a web-based tool built on [TensorFlow](http://tensorflow.org/) that makes creating machine learning models - like image classifiers - fast, easy, and accessible.

In this tutorial, you will use Teachable Machine to train a powerful image classification model that you can deploy as an app using PalletML - all without writing any code!

## Overview

You train an image classifier by showing it samples of labeled images. For example, you can train an image classifier to recognize different flowers by showing it a variety of pictures of roses, tulips, sunflowers, etc.

![](/files/-MNnpuaZbL2lbuZNo81D)

There are three general steps involved in training an image classification model with Teachable Machine:

1. **Gathering sample images**
2. **Training the model, and**
3. **Testing the model**

After you've trained the model to your satisfaction, you can **export** it as a file and **deploy** it to mobile using Pallet.

Let's start by gathering example images for training.

{% hint style="info" %}
Training takes place within the browser. The data stays in your machine without being moved to the cloud.:lock:
{% endhint %}

## Gather Your Data

Once you decide what objects you want your model to be able to recognize, you need to collect and organize sample images for each label. It's common to sort these sample images into subfolders by label (or **class**)**.**

For example, say we want to create a classifier that can recognize 5 different types of flowers: *daisies*, *dandelions*, *roses*, *sunflowers*, and *tulips*. We would collect and organizes pictures of each of these different types of flowers into the following folder structure:

![](/files/-MNnqyqimeJYNh2Hxc4q)

**If you want to get started quickly without creating your own image dataset**, we've included a structured dataset of flower images for you to use for training. Download it from the following link and unzip the folder to your computer: [Flower Photos.zip (Google Drive)](https://drive.google.com/file/d/1J2Dj7HB9EN4smixmW7RV0crT8B0AxTds/view?usp=sharing)

{% hint style="info" %}
For an even quicker start, you can use your webcam with Teachable Machine to capture training images. Check out [this](https://youtu.be/DFBbSTvtpy4) video to see how you can gather image data using your computer camera.\ <img src="/files/-MNnrR6tcpMbFCJ2pg9R" alt="" data-size="original">&#x20;
{% endhint %}

## Train an Image Classifier

Now that you've prepared a dataset, we can easily create an image classifier using Teachable Machine.&#x20;

**Start by visiting**: [teachablemachine.withgoogle.com/train/image](https://teachablemachine.withgoogle.com/train/image)

**Add a class** for each label in your dataset. (For the flowers dataset above we would add 5 classes). Then **rename** each class to something meaningful, such the name of a label.

![](/files/-MNntAZLfICDIp3JKNri)

Next, **Upload** each folder of sample images to the corresponding class. You can either browse for the folder of images, or simply drag and drop the entire folder into the window.

![](/files/-MNntOVAG83TipbqP_tq)

Now **Train** your model. This step will take a few minutes.

{% hint style="info" %}
Remember, all of the training happens locally on your computer, and machine learning is a computationally heavy process, so don't worry if the webpage appears to be sluggish for a few minutes. :woman\_lifting\_weights:&#x20;
{% endhint %}

![](/files/-MNntiUnp6We82kFoc6G)

## Test Your Model

Once your model finishes training, you can immediately test it in the **Preview** pane that becomes available on the right. Just toggle the **Input** to **File**, and browse for - or drag & drop - a sample flower picture. The sample picture can come from your dataset or anywhere else, like Google Image Search.

![](/files/-MNntyfRPatXMmw48dbW)

If your model is not performing as well as you'd like, you may want to try adding more example pictures to each class and retraining. Otherwise, it's **time to turn your model into an app!**

## Export Your Model

To deploy your model to mobile using Pallet, you first need to save it to a file.

Click **Export Model** in the Preview pane on the right.

![](/files/-MNnxi7R0ubxb01Sr3hn)

In the window that pops up, select the **TensorFlow Lite** tab, and under *Model conversion type* ensure the **Floating point** option is selected. Then click **Download my model**.

Your TensorFlow model will be converted to TensorFlow Lite (optimized for mobile devices), packaged with your labels, and downloaded to your computer (this step should only take 1-2 minutes).

![](/files/-MNnxsL2ieqjmFE7iDo2)

Unzip the `converted_tflite.zip` file to confirm that you have a TensorFlow Lite model and labels.

![](/files/-MNny0DSKEW5kRy9AOKq)

:white\_check\_mark: **You're all set to deploy your model to Pallet!**

{% content-ref url="/pages/-MNZwp4sH7AmSVQQ2Wko" %}
[Google Teachable Machine (No-Code)](/models/create-image-classifiers/teachable-machine)
{% endcontent-ref %}

## Up Next

In this tutorial you learned how to create a standard, yet powerful image classification model using Teachable Machine, and deploy it as a mobile app using PalletML.

However, **Teachable Machine's training process is constrained in ways that limit the predictive power of models it produces.**

To learn more about limitations of tools like Teachable Machine, and how to **create more powerful models that can be used in the real-world**, continue on to the next section. (coming soon...)


# Download Pre-Built Models

Want to try Pallet but don't have a model handy? Download one of these pre-built models to get started now 👇

### **Image Classification Models**

{% hint style="info" %}
Each download is zip file containing a TensorFlow Lite Model + Labels pair. When the download completes, unzip the model assets to your computer. Then you can easily [deploy them](/deploy/deploy-your-model).
{% endhint %}

:robot: **Google's MobileNetV2**

Developed by Google, this model can classify 1,000 different objects - from umbrellas to volcanoes!

![Example images MobileNet was trained to classify](/files/-MMNNZPopFkDwrKZFqA5)

{% file src="/files/-MMI6JdzQRAqqHZhOYVi" %}
Download MobileNetV2
{% endfile %}

:sunflower: **FlowerNet**

This model classifies daisies, dandelions, roses, sunflowers, and tulips.

![Example images FlowerNet was trained to classify](/files/-MMNNlik9SulHtGbp6fZ)

{% file src="/files/-MMI6JdyieiVE9TBWkvM" %}
Download FlowerNet
{% endfile %}

:dog: **Dog Breeds**

This model can distinguish between 120 different dog breeds.

![Example images this model was trained to classify](/files/-MMNO79xPXCF5lF133Pm)

{% file src="/files/-MMI6JdqDvY5KIaNXJ3E" %}
Download Dog Breeds
{% endfile %}

:punch: **Rock-Paper-Scissors**

This model can tell if you're throwing Rock, Paper, or Scissors from the classic game.

It was trained on [3D generated images](http://www.laurencemoroney.com/rock-paper-scissors-dataset/) instead of photographs, so **for best results**, take a picture of your hand in Rock, Paper, or Scissors formation over a clear plain surface.

![Example images this model was trained to classify](/files/-MMNPLor3D6rEMdrqQQr)

{% file src="/files/-MMI6JdvZIR73Zw3K\_Gp" %}
Download Rock-Paper-Scissors
{% endfile %}

### Deploy Your Model

Now that you have model assets prepared, head back over to the tutorial to turn your model into a shareable image classification app:

{% content-ref url="/pages/-MMEc-O4zIXHIjinxTB0" %}
[Your First No-Code Smart App](/getting-started/tutorials/your-first-no-code-smart-app)
{% endcontent-ref %}


# FAQ

## What kinds of models are supported ?

Pallet works with **any image classification model** developed with TensorFlow. Just convert your model to **TensorFlow Lite**, prepare a plaintext labels file, and follow the [steps for deployment](/deploy/deploy-your-model).

You can also use a no-code tool to train and export a ready-to-deploy image classification model. ([Learn how](/models/create-image-classifiers))

Eventually Pallet will support models and frameworks designed for a variety of different tasks.

## How many models can I deploy?

The number of models you can deploy depends on your plan, and the amount of Cloud Storage that comes with it.

On the **Free Plan** you can deploy up to **3 Models**, and the **Pro Plan** comes with **500 MB** of Cloud Storage (enough space to deploy *50* cat-or-dog classifiers).

If none of our plans are suited to your needs, just [get in touch](mailto:support@palletml.com) and we'll work something out.

## Where and how is my data stored?

Unless otherwise noted, all model inference occurs locally on your device. When you save a classification (optional), the image and prediction results are saved to your account and synced to the cloud.

In other words, no data related to the images you send into a classifier, or the results, ever leave your device without your permission.

Models and predictions that are uploaded to the cloud are stored securely with Amazon Web Services (AWS), the same cloud used by [Netflix](https://aws.amazon.com/solutions/case-studies/netflix-and-aws-lambda/), [Airbnb](https://aws.amazon.com/solutions/case-studies/airbnb/), [Pinterest](https://aws.amazon.com/solutions/case-studies/pinterest/), [Duolingo](https://aws.amazon.com/solutions/case-studies/duolingo-case-study-dynamodb/), and [Slack](https://aws.amazon.com/solutions/case-studies/slack/).

For more information on how we protect your data, please check our [Privacy Policy](https://app.palletml.com/privacy).


# About

## Simplifying Mobile ML

The technology for building AI-enhanced applications is more accessible than ever before, but the process of actually building & distributing these 'smart apps' can still be a challenge.

Pallet is a no-code platform that enables you to **instantly turn machine learning models into shareable apps**, and access them anytime from a single interface.

It's our first step toward making the process of building, deploying, and sharing custom AI-enabled apps as easily as possible, especially for individual developers, data scientists, and machine learning engineers.


