This example will take you through training your own time sequence prediction model using Unweave. By the end, you'll have used Unweave to:
- Launch a zepl to train a time sequence prediction model and generate predictions,
- Download the prediction plots from your
uwstoreback to your local laptop
Before we begin, you should follow the Getting Started guide to install the Unweave CLI and login for the first time.
Preparing your project
We're first going to clone the starters repository from the Unweave Github account and change into the
time-sequence-prediction starter template directory:
git clone https://github.com/unweave/starters.git cd starters/time-sequence-prediction
We then need to initialize this directory using the
unweave init command. This will create a new project, which we'll default the name to
time-sequence-prediction and link it to the
time-sequence-prediction directory on our local machine.
❯ unweave init ? Enter project name [time-sequence-prediction]: Created project time-sequence-prediction Path: /Users/markwinter/Code/starters/time-sequence-prediction Project: time-sequence-prediction
Train Your Model
Now that we have the project setup, it's time to launch a zepl to train our time sequence model. You can do this by pre-pending
unweave in-front of the command you would normally run to execute your python script. This will build the ZeplContext from your current directory, assign a serverless compute node, and run the zepl using the command you provide - in this case
train.py training script generates a sine wave and then uses it to train the model for 3 steps . After a training step it makes a prediction for future values and saves them to a plot in a PDF file in the
./uwstore/output directory. Unweave will automatically sync anything written to the
./uwstore/output directory back to the
uwstore once the zepl exits.
❯ unweave python train.py Created zepl "wooden-dish-most-sea" with ID "52bf79f0-643d-4d6c-b4e6-6ecbef3c9315" Starting zepl Press Ctrl+C to cancel the zepl Press Ctrl+D to detach 🔄 Initializing serverless compute node ✅ Compute node assigned to zepl 🔄 Syncing Unweave Store 🔄 Building environment 🚀 Zepl running. Fetching logs ... STEP: 0 loss: 0.5023738120466186 loss: 0.4985663932454724 loss: 0.479011960201462 loss: 0.44633490395179287 loss: 0.3540631027261268 loss: 0.20507018018165285 .. 🧹 Cleaning up ✅ Zepl complete
train.py script has one argument you can use to adjust the number of steps to train. You can pass in arguments to your script by appending a
-- after the script followed by the desired arguments:
unweave python train.py -- --steps=5
Once the Python script exits, we can list the
uwstore to view the saved PDF files containing the prediction plots that were saved to
./uwstore/output during the script execution.
❯ unweave store list 2022-09-01 20:06:03 +0900 KST 25 kB output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict0.pdf 2022-09-01 20:06:03 +0900 KST 40 kB output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict1.pdf 2022-09-01 20:06:03 +0900 KST 28 kB output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict2.pdf 2022-09-01 20:06:03 +0900 KST 40 kB output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict3.pdf 2022-09-01 20:06:03 +0900 KST 38 kB output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict4.pdf
If you want to download objects from the
uwstore back to your local computer, you can use the
unweave store download command. Giving a directory path to the command will download everything in the directory.
$ unweave store download output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315 predict0.pdf saved to ./uwstore/output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict0.pdf predict1.pdf saved to ./uwstore/output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict1.pdf predict2.pdf saved to ./uwstore/output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict2.pdf predict3.pdf saved to ./uwstore/output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict3.pdf predict4.pdf saved to ./uwstore/output/52bf79f0-643d-4d6c-b4e6-6ecbef3c9315/predict4.pdf