Skip to content
In this project, you'll classify images from the CIFAR-10 dataset.
HTML Jupyter Notebook Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Deep learning nano degreee second project


  1. Clone the repo

  2. Change the directory

    cd dlnd-p2-image-classification
  1. Download anaconda or miniconda based on the instructions in the Anaconda lesson.

  2. Create a new conda environment:

    conda create --name dlnd python=3
  1. Enter your new environment:
    Mac/Linux: >> source activate dlnd
    Windows: >> activate dlnd
  1. Ensure you have numpy, matplotlib, pandas, and jupyter notebook installed by doing the following:
    conda install numpy matplotlib pandas jupyter notebook
  1. Run the following to open up the notebook server:
    jupyter notebook
  1. In your browser, open dlnd_image_classification.ipynb

  2. Follow the instructions in the notebook will lead you through the project.

Running the Udacity Deep Learning Foundations image classification project on

  1. Create an account on (don't forget to confirm your email). You will automatically receive 100 free GPU hours.

  2. Install the floyd command on your computer:

     pip install -U floyd-cli

    Do this even if you already installed floyd-cli before, just to make sure you have the most recent version (Its pace of development is fast!).

  3. Associate the command with your Floyd account:

     floyd login

    (a page with authentication token will open; you will need to copy the token into your terminal)

  4. Clone this repository:

     git clone

    Note: There are couple minor differences between this repository and the original Udacity repository. You can read about them in README. To follow this instructions you need to use this repository.

  5. Enter the folder for the image classification project:

     cd image-classification
  6. Initiate a Floyd project:

     floyd init dlnd_image_classification
  7. Run the project:

     floyd run --gpu --env tensorflow --mode jupyter --data diSgciLH4WA7HpcHNasP9j

    It will be run on a machine with GPU (--gpu), using a Tenserflow environment (--env tensorflow), as a Jupyter notebook (--mode jupyter), with Floyd's built-in cifar-10 dataset available (--data diSgciLH4WA7HpcHNasP9j).

  8. Wait for the Jupyter notebook to become available and then access the URL displayed in the terminal (described as "path to jupyter notebook"). You will see the notebook.

  9. Remember to explicitly stop the experiment when you are not using the notebook. As long as it runs (even in the background) it will cost GPU hours. You can stop an experiment in the "Experiments" section on or using the floyd stop command:

     floyd stop ID

    (where ID is the "RUN ID" displayed in the terminal when you run the project; if you lost it you can also find it in the "Experiments" section on

Important: When you run a project it will always start from scratch (i.e. from the state present locally on your computer). If you made changes in the remote jupiter notebook during a previous run, the changes will not be present in subsequent runs. To make them permanent you need to add the changes to your local project folder. When running the notebook you can download them directly from Jupyter - File / Download / Notebook. After downloading it, just replace your local dlnd_image_classification.ipynb file with the newly downloaded one.

Alternatively, If you already stoped the experiment, you can still download the file using the floyd output command:

floyd output ID

(where ID is the "RUN ID" displayed in the terminal when you run the project; if you lost it you can also find it in the "Experiments" section on

Just run the command above, download dlnd_image_classification.ipynb and replace your local version with the newly downloaded one.

How is this repository different from the original?

  1. I added support for Floyds built-in cifar-10 dataset. If its presence is detected, it will be used, without a need to download anything. (see the commit, learn more abut datasets provided by Floyd)

  2. I added a floyd_requirements.txt file, so an additional dependency is automatically taken care of. (see the commit, learn more about .floyd_requirements.txt files)

  3. I added a .floydignore file to stop local data from being uploaded to Floyd - which wastes time and may even result in a timeout (see the commit, learn more about .floydignore files)

  4. I added this README

You can’t perform that action at this time.