Ambitious workflows in R, such as machine learning analyses, 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, install the
learndrake
package,
TensorFlow, and
Keras.
install.packages("remotes")
remotes::install_github("wlandau/learndrake")
tensorflow::install_tensorflow()
keras::install_keras()
- Sign up for RStudio Cloud.
- Navigate to https://rstudio.cloud/project/627076L to open a new copy of the workshop.
- Optional: save a permanent copy so you can come back to it later. Look for the red “temporary copy” text at the top and click the “save a permanent copy” option next to it.
Just click this badge: .
Your browser will open the materials in a free RStudio Server instance.
- Advantage: no need to sign up for RStudio Cloud.
- Disadvantage: long load times and quick timeouts.
The functions in learndrake
help navigate and deploy the workshop
materials. If you installed the package and dependencies as above, you
can take the workshop locally without an internet connection. Start with
the introductory slides, then move on to the notebooks. Launch apps
along the way as
directed.
Function | Purpose |
---|---|
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. |
save_notebooks() |
Save the tutorials to your computer: R notebooks and supporting files. |
save_slides() |
Save the introductory slides to your computer. |
view_slides() |
Open the introductory slides in a web browser. |
The workshop begins with an introductory presentation on
drake
. You can find a video
recording here.
Alternatively, you can 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. |