Skip to content

Instantly share code, notes, and snippets.

@GuillaumeDesforges
Last active June 10, 2020 17:33
Show Gist options
  • Save GuillaumeDesforges/ad5a2999cca80a72eac3856416b77304 to your computer and use it in GitHub Desktop.
Save GuillaumeDesforges/ad5a2999cca80a72eac3856416b77304 to your computer and use it in GitHub Desktop.
{-# LANGUAGE Arrows #-}
{-# LANGUAGE QuasiQuotes #-}
module Funflow.Targets.Example1 where
import Funflow
import Path
srcDir = [absdir|/data/scripts|]
flow = proc () -> do
-- Download data (X)
data
<-
\() -> python
{
src = srcDir,
entrypoint = [relfile|download_data.py|],
args = ["--url", "http://company.com/api/data.zip"],
executor = Docker { image = "python" }
}
-< ()
-- Download model
model
<-
\() ->
python
{
src = srcDir,
entrypoint = [relfile|preload_model.py|],
args = ["--hub-url", "http://github.com/company/models", "--model-name", "awesomenet"],
executor = Docker { image = "pytorch/pytorch" }
}
-< ()
-- Make predictions
predictions
<-
\(data, model) ->
python
{
src = srcDir,
entrypoint = [relfile|predict.py|],
args = ["--dataset", data </> [relfile|dataset.csv|], "--model", model </> [relfile|model.pt|]],
executor = Docker { image = "pytorch/pytorch", inputs = [data, model] }
}
-< (data, model)
readFileFromStoreItem [relfile|predictions.txt|] -< predictions
main = do
result <-
runFlow
{
plug = [Python],
store = default,
}
flow
()
print result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment