You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@madlib.apache.org by "Nikhil (JIRA)" <ji...@apache.org> on 2019/05/22 22:13:00 UTC
[jira] [Created] (MADLIB-1350) Warm start with madlib_keras_fit()
Nikhil created MADLIB-1350:
------------------------------
Summary: Warm start with madlib_keras_fit()
Key: MADLIB-1350
URL: https://issues.apache.org/jira/browse/MADLIB-1350
Project: Apache MADlib
Issue Type: Improvement
Components: Deep Learning
Reporter: Nikhil
Fix For: v1.16
Many deep neural nets are not trained from scratch in one-shot. Training may happen over time depending on available resources. So when you restart training, you want to pick up from where you left off.
As a data scientist,
I want to continue training a model based on weights that I have from a previous run,
so that I don't have to start from scratch.
* e.g., continue training from where you left off
Interface
Add `warm_start` Boolean to fit() like in MLP http://madlib.apache.org/docs/latest/group__grp__nn.html
{code}
madlib_keras_fit(
source_table VARCHAR,
model VARCHAR,
model_arch_table VARCHAR,
model_arch_id INTEGER,
compile_params VARCHAR,
fit_params VARCHAR,
num_iterations INTEGER,
gpus_per_host INTEGER,
validation_table VARCHAR,
warm_start BOOLEAN, <-- NEW PARAMETER
name VARCHAR,
description VARCHAR
{code}
Logic
{code}
if warm_start = TRUE
use weights from output table
else
use weights from model arch table if there are any (if not use the initialization as defined in the model arch in keras)
{code}
This JIRA is for the first part of the if , i.e, `if warm_start = TRUE`
Details
1. User should be able to change the `compile_params` and `fit_params` between warm starts. However, the model architecture is fixed between warm starts.
2. Ensure that weight initialization done in model arch is not overwritten by MADlib, in the case that the model arch tables has NULL in the weights column.
3. Overwrite i.e., replace the model output and model summary tables when use warm-start.
Acceptance
1. Train a model for n iterations
2. Start training again using the saved model state as an input to the 2nd round of training. Training for the 2nd round should start from where it left off, which you can see by looking at the loss or accuracy function and not seeing a discontinuity.
3. Repeat #1 above using a 3rd round of training.
4. Repeat 2-3 for a different metric besides accuracy.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)