dask/dask-examples

Use an already trained Keras model to predict on lots of data

Open

#35 opened on Aug 31, 2018

 (17 comments) (1 reaction) (0 assignees)Jupyter Notebook (225 forks)auto 404
help wanted

Repository metrics

Stars
 (386 stars)
PR merge metrics
 (PR metrics pending)

Description

A common approach is to train on a bit of data and then use that trained model to predict on lots of data. We could do this using ParallelPostFit in dask-ml, or we can use X.map_blocks or df.map_partitions. In either case we might want to be a bit careful about avoiding repeated serializations costs. For example, in the following case I suspect that we include the serialized model in every task

# maybe bad?
model = load_model()
predictions = X.map_blocks(model.predict)  

It's probably better to encourage the user to keep the model delayed

# maybe bad?
model = dask.delayed(load_model)()
predictions = X.map_blocks(model.predict)  

We should also ensure that dask-ml does this correctly, and includes the model as a single task in the graph so that it gets sent around appropriately (cc @TomAugspurger )

I'm also generally curious if a Keras model that lives on the GPU will eventually make its way back onto the GPU when deserializing.

Contributor guide