You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@madlib.apache.org by GitBox <gi...@apache.org> on 2019/12/04 20:34:00 UTC
[GitHub] [madlib] fmcquillan99 commented on issue #461: DL: Add optional
parameters for multi model training
fmcquillan99 commented on issue #461: DL: Add optional parameters for multi model training
URL: https://github.com/apache/madlib/pull/461#issuecomment-561827179
LGTM from functional perspective
(1)
train for 3 iterations
```
DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;
SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table
'iris_multi_model', -- model_output_table
'mst_table', -- model_selection_table
3, -- num_iterations
0, -- use gpus
'iris_test_packed', -- validation dataset
1, -- metrics compute frequency
FALSE, -- warm start
'Sophie L.', -- name
'Simple MLP for iris dataset' -- description
);
```
Now train for 3 more iterations with warm start, then do it again with warm start, for a total of 9 iterations altogether
```
SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table
'iris_multi_model', -- model_output_table
'mst_table', -- model_selection_table
3, -- num_iterations
0, -- use gpus
'iris_test_packed', -- validation dataset
1, -- metrics compute frequency
TRUE, -- warm start
'Sophie L.', -- name
'Simple MLP for iris dataset' -- description
);
```
Look at `mst_key=3` for 3 succesive runs:
```
training_loss
[0.57945317029953, 0.363865971565247, 0.285590827465057]
[0.254694432020187, 0.19344100356102, 0.146936997771263]
[0.132369637489319, 0.191817075014114, 0.157660290598869]
validation_loss
[0.67350971698761, 0.443352043628693, 0.309820145368576]
[0.261916130781174, 0.201081365346909, 0.127666547894478]
[0.0899263918399811, 0.204310938715935, 0.0784771740436554]
```
Look at `mst_key=4` for 3 succesive runs:
```
training_loss
[0.994381964206696, 0.746099174022675, 0.608452022075653]
[0.51947021484375, 0.606200277805328, 0.340667217969894]
[0.439217150211334, 0.332746595144272, 0.279199987649918]
validation_loss
[1.0290435552597, 0.814084649085999, 0.709287881851196]
[0.614403426647186, 0.713598251342773, 0.380535960197449]
[0.498434334993362, 0.354164630174637, 0.273105055093765]
```
This looks OK in principle since these losses seem to continue from the previous run.
(2)
drop summary table and run warm start
```
InternalError: (psycopg2.InternalError) plpy.Error: madlib_keras_fit_multiple error: Input table 'iris_multi_model_summary' does not exist. (plpython.c:5038)
CONTEXT: Traceback (most recent call last):
PL/Python function "madlib_keras_fit_multiple_model", line 21, in <module>
fit_obj = madlib_keras_fit_multiple_model.FitMultipleModel(**globals())
PL/Python function "madlib_keras_fit_multiple_model", line 42, in wrapper
PL/Python function "madlib_keras_fit_multiple_model", line 119, in __init__
PL/Python function "madlib_keras_fit_multiple_model", line 410, in __init__
PL/Python function "madlib_keras_fit_multiple_model", line 253, in __init__
PL/Python function "madlib_keras_fit_multiple_model", line 280, in _validate_common_args
PL/Python function "madlib_keras_fit_multiple_model", line 674, in input_tbl_valid
PL/Python function "madlib_keras_fit_multiple_model"
[SQL: "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table\n 'iris_multi_model', -- model_output_table\n 'mst_table', -- model_selection_table\n 3, -- num_iterations\n 0, -- use gpus\n 'iris_test_packed', -- validation dataset\n 1, -- metrics compute frequency\n TRUE, -- warm start\n 'Sophie L.', -- name\n 'Simple MLP for iris dataset' -- description\n );"]
```
OK error message
(3)
drop model table and run warm start
```
InternalError: (psycopg2.InternalError) plpy.Error: madlib_keras_fit_multiple error: Input table 'iris_multi_model' does not exist. (plpython.c:5038)
CONTEXT: Traceback (most recent call last):
PL/Python function "madlib_keras_fit_multiple_model", line 21, in <module>
fit_obj = madlib_keras_fit_multiple_model.FitMultipleModel(**globals())
PL/Python function "madlib_keras_fit_multiple_model", line 42, in wrapper
PL/Python function "madlib_keras_fit_multiple_model", line 119, in __init__
PL/Python function "madlib_keras_fit_multiple_model", line 410, in __init__
PL/Python function "madlib_keras_fit_multiple_model", line 253, in __init__
PL/Python function "madlib_keras_fit_multiple_model", line 279, in _validate_common_args
PL/Python function "madlib_keras_fit_multiple_model", line 674, in input_tbl_valid
PL/Python function "madlib_keras_fit_multiple_model"
[SQL: "SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table\n 'iris_multi_model', -- model_output_table\n 'mst_table', -- model_selection_table\n 3, -- num_iterations\n 0, -- use gpus\n 'iris_test_packed', -- validation dataset\n 1, -- metrics compute frequency\n TRUE, -- warm start\n 'Sophie L.', -- name\n 'Simple MLP for iris dataset' -- description\n );"]
```
(4)
try diff metrics compute frequency
```
DROP TABLE IF EXISTS iris_multi_model, iris_multi_model_summary, iris_multi_model_info;
SELECT madlib.madlib_keras_fit_multiple_model('iris_train_packed', -- source_table
'iris_multi_model', -- model_output_table
'mst_table', -- model_selection_table
5, -- num_iterations
0, -- use gpus
'iris_test_packed', -- validation dataset
3, -- metrics compute frequency
FALSE, -- warm start
'Sophie L.', -- name
'Simple MLP for iris dataset' -- description
);
```
Look at summary table
```
SELECT * FROM iris_multi_model_summary;
-[ RECORD 1 ]-------------+---------------------------------------------
source_table | iris_train_packed
validation_table | iris_test_packed
model | iris_multi_model
model_info | iris_multi_model_info
dependent_varname | class_text
independent_varname | attributes
model_arch_table | model_arch_library
num_iterations | 5
metrics_compute_frequency | 3
warm_start | f
name | Sophie L.
description | Simple MLP for iris dataset
start_training_time | 2019-12-04 20:28:55.000868
end_training_time | 2019-12-04 20:29:50.155568
madlib_version | 1.17-dev
num_classes | 3
class_values | {Iris-setosa,Iris-versicolor,Iris-virginica}
dependent_vartype | character varying
normalizing_const | 1
metrics_iters | {3,5}
```
OK on the {3,5}
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services