Machine learning workflows can be difficult to manage. A single round of
computation can take several hours to complete, and routine updates to
the code and data tend to invalidate hard-earned results. You can
enhance the maintainability, hygiene, speed, scale, and reproducibility
of such projects with the drake
R
package. drake
resolves the
dependency structure of your analysis pipeline, skips tasks that are
already up to date, executes the rest with optional distributed
computing, and
organizes the output so you rarely have to think about data files. This
workshop will teach you how to create and maintain machine learning
projects with drake
-powered
automation.
To obtain the workshop materials, simply install the learndrake
package.
install.packages("remotes")
library(remotes)
install_github("wlandau/learndrake")
The functions in learndrake
help navigate and deploy the workshop
materials.
Function | Purpose |
---|---|
view_slides() |
Open the introductory slides in a web browser. |
save_notebooks() |
Save the tutorials to your computer: R notebooks and supporting files. |
launch_app() |
Launch a Shiny app that accompanies a tutorial. |
save_app() |
Save the app files so you can deploy to shinyapps.io or Shiny Server. |
The workshop begins with an introductory presentation on
drake
. View the slides at
https://wlandau.github.io/learndrake/index.html or open them
yourself in a browser with view_slides()
.
After the introductory presentation, students work through a sequence of
R notebooks in order. Use save_notebooks()
to save the notebooks and
supporting files to your
computer.
Notebook | Topic |
---|---|
1-churn.Rmd |
Deep learning case study |
2-setup.Rmd |
Convert the case study to a new drake project. |
3-flow.Rmd |
Develop, work, and iterate on the project. |
4-plans |
A deep dive into drake plans. |
5-files |
Custom input and output data files. |
6-reports |
Special considerations of knitr and R Markdown reports. |
7-hpc |
High-performance computing |
Notebooks 3-flow.Rmd
and 4-plans.Rmd
come with supporting Shiny apps
to conduct the learning
exercises.
App | Notebook | Deploy locally | Public URL |
---|---|---|---|
Iterate on a drake workflow |
3-flow.Rmd |
launch_app("flow") |
http://wlandau.shinyapps.io/learndrakeflow |
Exercises on drake plans |
4-plans.Rmd |
launch_app("plans") |
http://wlandau.shinyapps.io/learndrakeplans |
Visualize drake projects |
4-plans.Rmd |
launch_app("drakeplanner") |
http://wlandau.shinyapps.io/drakeplanner |
Thanks to | For |
---|---|
Edgar Ruiz | Uniting drake and keras at https://github.com/sol-eng/tensorflow-w-r and providing valuable advice on the construction of the workshop. |
Matt Dancho | Publishing the original blog post with the workshop’s underlying case study. |
Eric Nantz | Reviewing and providing feedback on this workshop. |