AI‐24sp‐2024‐04‐11‐Afternoon - TheEvergreenStateCollege/upper-division-cs-23-24 GitHub Wiki

Goals in Class Today

  • Work with your partner on the assigned prototype below.
  • Finish typing from the Mike Nielsen notes into network.py and the load_mnist.py
  • Download the MNIST data from Yann Lecun's website again if you don't have it on this workspace.
  • Load the training data and begin training a model on your neural network.

Teams

We will continue typing and updating the MNIST Classifier from Mike Nielsen's notes. You will be assigned a random prototype from the list below:

  • prototype-01
    • @
    • @nathanMCL
  • prototype-02
    • @AkinaSS
    • @DawsonWhi
  • prototype-03
    • @AbyssalRemark
    • @whereismyprozac
  • prototype-04
    • @ddnsc
    • @Ryan-Geiser
  • prototype-05
    • Needs to be created from scratch
    • @JulianC
    • @Gavin-Bowers
  • prototype-06
    • Needs to be created from scratch
    • @pointmeathesky
  • prototype-07
    • @deo2E
    • @faulkdf
  • prototype-08
    • @emoleary
    • @kvothethm
  • prototype-09
    • @MrTimmyJ
    • @ndeanon25
  • prototype-10
    • @EvergreenSpock
    • @zimbabwe1
  • prototype-11
    • @JonahEadieEvergreen
    • @rilesbe

Instructions

  1. Start your GitPod workspace, or open your laptop to your locally cloned upper-division-cs on the main branch, to a clean working directory.

  2. Change to your assigned prototype directory and gauge how far along it is, and what you can add to it today. Read the README.md file.

cd <repo_dir>/ai-24sp/prototypes/prototype-xx
  1. If you need to, re-download the MNIST data from Yann Lecun's website following Week 01 Afternoon's notes.

Extract the data so the files end in *ubyte and not *.gz

  1. Install two Python libraries
pip3 install numpy pillow
  1. Run load_mnist.py and make sure that it creates one file mnist.png that you can view in VSCode.
$ python3 load_mnist.py
  1. Finish typing network.py from the Mike Nielsen notes.

  2. Add a function to load_mnist to load all images, reshape them as Numpy arrays, and zips them together with labels.

We will do this part on screen together in lab.

...

  1. Add a function to import network and instantiate a neural network with the training and validation data in the expected format.

  2. Run load_mnist again. You should see epoch training messages.

Epoch 0: 9129 / 10000
Epoch 1: 9295 / 10000
Epoch 2: 9348 / 10000
...
Epoch 27: 9528 / 10000
Epoch 28: 9542 / 10000
Epoch 29: 9534 / 10000
  1. Stretch Goal: Save the trained model (weights and biases) as a Python3 pickled object, so that we can see its file size, and you can ship it to another team next week.
⚠️ **GitHub.com Fallback** ⚠️