Skip to content

Commit

Permalink
Hft gui hft data split (#274)
Browse files Browse the repository at this point in the history
* add settings for data split

* add gui for data split

* int

* line length

* remove a console log
  • Loading branch information
benfoley committed Dec 6, 2021
1 parent 5b8048d commit 69c60ed
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 16 deletions.
10 changes: 6 additions & 4 deletions elpis/engines/hft/objects/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
'num_train_epochs': '3',
'model_name_or_path': 'facebook/wav2vec2-base',
'per_device_train_batch_size': '1',
'per_device_eval_batch_size': '1'
'per_device_eval_batch_size': '1',
}

# Training Stages
Expand Down Expand Up @@ -101,7 +101,9 @@ def __init__(self, **kwargs):
'max_duration_s': 60,
'learning_rate': 1e-4,
'batch_size': 4,
'debug': False
'debug': False,
'data_split_train': 10,
'data_split_val': 6,
}
print('model default settings', self.settings)

Expand Down Expand Up @@ -278,8 +280,8 @@ def create_split(self, data_dir):
)
# Reduce the dataset size for debugging
if DEBUG or self.settings['debug'] is True:
train_annos = train_annos[:10]
devtest_annos = devtest_annos[:6]
train_annos = train_annos[:int(self.settings['data_split_train'])]
devtest_annos = devtest_annos[:int(self.settings['data_split_val'])]

# Make dev and test the same because we are mostly working with small datasets
dev_annos = test_annos = devtest_annos
Expand Down
37 changes: 31 additions & 6 deletions elpis/gui/src/components/Model/Settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ class ModelSettings extends Component {
learning_rate: settings.learning_rate,
batch_size: settings.batch_size,
debug: settings.debug,
data_split_train: settings.data_split_train,
data_split_val: settings.data_split_val,
}}
validate={values => {
let errors = {};
Expand All @@ -119,15 +121,18 @@ class ModelSettings extends Component {
learning_rate: values.learning_rate,
batch_size: values.batch_size,
debug: values.debug,
data_split_train: values.data_split_train,
data_split_val: values.data_split_val,
}};

modelSettings(postData);
this.props.history.push(urls.gui.model.train);
}}
>
{({
handleSubmit,
handleChange,
values,
handleSubmit,
handleChange,
}) => (
<Form onSubmit={handleChange}>
<Table>
Expand Down Expand Up @@ -204,10 +209,29 @@ class ModelSettings extends Component {
Debug with 10:6 train val split
</Table.Cell>
<Table.Cell>
<Field
type="checkbox"
name="debug"
/>
<Grid className="settings_debug">
<Grid.Column width={2}>
<Field
type="checkbox"
name="debug"
/>
</Grid.Column>
{values && values.debug &&
<Grid.Column
width={14}
className="data_split_inputs"
>
<Grid.Row>
<Field name="data_split_train" />
<span>Training split</span>
</Grid.Row>
<Grid.Row>
<Field name="data_split_val" />
<span>Validation split</span>
</Grid.Row>
</Grid.Column>
}
</Grid>
</Table.Cell>
</Table.Row>
</Table.Body>
Expand All @@ -229,6 +253,7 @@ class ModelSettings extends Component {
}
}


const mapStateToProps = state => {
return {
name: state.model.name,
Expand Down
16 changes: 16 additions & 0 deletions elpis/gui/src/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,22 @@ label.pad-right,
.training_settings .ui.form tr {
padding: 0 0.5em;
}
.training_settings .settings_debug {
display: flex;
align-items: center;
}
.training_settings .settings_debug input {
width: 80px !important;
}
.data_split_inputs div {
display: flex;
align-items: center;
}
.data_split_inputs span {
padding-left: 1em;
font-style: italic;
}


/* Container for opacity toggle */
.conf-tools {
Expand Down
12 changes: 6 additions & 6 deletions elpis/gui/src/redux/reducers/modelReducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ const model = (state = initState, action) => {
} else {
const {name, dataset_name, pron_dict_name, settings} = action.response.data.data.config;

console.log("model reducer new success");
console.log(settings);

// pron_dict_name could be null if not using pron dicts
return {
...initState,
Expand All @@ -36,14 +33,12 @@ const model = (state = initState, action) => {
pronDictName: pron_dict_name,
};
}

case actionTypes.MODEL_LOAD_SUCCESS: {
var {name, dataset_name, engine_name, pron_dict_name, settings, results} = action.response.data.data.config;
let model_status = action.response.data.data.config;
let log = action.response.data.data.log;

console.log("model reducer load success");
console.log(settings);

// pron_dict_name could be null if not using pron dicts
return {
...state,
Expand All @@ -57,10 +52,12 @@ const model = (state = initState, action) => {
settings: settings,
};
}

case actionTypes.MODEL_LIST_SUCCESS:
var {list} = action.response.data.data;

return {...state, modelList: list};

case actionTypes.MODEL_SETTINGS_SUCCESS:
({data, status} = action.response.data);
console.log("model reducer settings success");
Expand All @@ -73,6 +70,7 @@ const model = (state = initState, action) => {

return {...state};
}

case actionTypes.MODEL_TRAIN_SUCCESS:
({data, status} = action.response.data);

Expand All @@ -83,6 +81,7 @@ const model = (state = initState, action) => {

return {...state};
}

case actionTypes.MODEL_STATUS_SUCCESS:
({data, status} = action.response.data);

Expand All @@ -93,6 +92,7 @@ const model = (state = initState, action) => {

return {...state};
}

case actionTypes.MODEL_RESULTS_SUCCESS:
({data, status} = action.response.data);
console.log(data, status);
Expand Down

0 comments on commit 69c60ed

Please sign in to comment.