Code Monkey home page Code Monkey logo

learndrake's Introduction

Travis build status Codecov test coverage Launch RStudio Cloud Launch RStudio Binder

Reproducible workflows at scale with drake

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.

Installation

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()

Usage

RStudio Cloud

  1. Sign up for RStudio Cloud.
  2. Navigate to https://rstudio.cloud/project/627076L to open a new copy of the workshop.
  3. 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.

Binder

Just click this badge: Launch RStudio Binder. 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.

Local

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.

Introductory presentation

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().

commcall



Tutorials

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

Apps

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

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.

learndrake's People

Contributors

wlandau-lilly avatar khailper avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.