Skip to content

Nnet3 dropout: code for Fast LSTM and scripts for AMI etc#1537

Merged
danpovey merged 27 commits intokaldi-asr:masterfrom
GaofengCheng:nnet3_dropout
Apr 20, 2017
Merged

Nnet3 dropout: code for Fast LSTM and scripts for AMI etc#1537
danpovey merged 27 commits intokaldi-asr:masterfrom
GaofengCheng:nnet3_dropout

Conversation

@GaofengCheng
Copy link
Contributor

@GaofengCheng GaofengCheng commented Apr 9, 2017

This PR will include:

  1. code for fast lstm dropout (based on dpovey's PR1387)
  2. scripts with dropout for AMI-IHM, AMI-SDM, SWBD and TEdlium (tdnn-(fast)lstms and b(fast)lstms)

Time schedule:

  1. fast lstm dropout code
  2. scripts for
    AMI-IHM-> (done)
    AMI-SDM-> (done)
    SWBD-> (done)
    TEdlium-> (done)
    (follow the time axis)

%WER 20.8 | 13098 94489 | 82.0 10.0 8.0 2.8 20.8 53.2 | -0.096 | exp/ihm/chain_cleaned/tdnn_lstm1i_sp_bi_ld5/decode_dev/ascore_11/dev_hires.ctm.filt.sys
%WER 20.7 | 12643 89980 | 81.7 11.5 6.8 2.5 20.7 51.8 | 0.015 | exp/ihm/chain_cleaned/tdnn_lstm1i_sp_bi_ld5/decode_eval/ascore_11/eval_hires.ctm.filt.sys

# local/chain/tuning/run_tdnn_lstm_1l.sh --mic ihm --train-set train_cleaned --gmm tri3_cleaned
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this level, please just include the results for the "recommended" system which is 1m.
You should put all the comparative results in the individual scripts inside local/chain/tuning.
Use the standard compare_wer.sh script, whatever it's called, and also include the output
of chain_dir_info.pl from each of those scripts, in a comment in that script.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@danpovey OK, will do

#System tdnn_lstm1i_sp_bi_ld5 tdnn_lstm1l_sp_bi_ld5
#WER on dev 20.6 19.8
#WER on eval 20.1 19.2
#Final train prob -0.045 -0.067
Copy link
Contributor

@danpovey danpovey Apr 11, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please give a bit more context in all of these scripts, at the top e.g. in this case where it says
# same as 1i but with per-frame dropout on LSTM layer
about what this is, e.g....
# This (1l.sh) is thesame as 1i but with per-frame dropout on LSTM layer
# It is a regular (not-fast) LSTM with per-frame dropout on [which gates?].
And explain how it relates to the paper, e.g. is it "place4" in the paper?
You can send me the final pdf to put on my publications page if it's not already there,
and include a link from the script to the paper.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@danpovey I have emailed the final pdf to you, later will go on updating this PR

Copy link
Contributor

@vijayaditya vijayaditya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just some minor comments.

%WER 20.8 | 13098 94489 | 82.0 10.0 8.0 2.8 20.8 53.2 | -0.096 | exp/ihm/chain_cleaned/tdnn_lstm1i_sp_bi_ld5/decode_dev/ascore_11/dev_hires.ctm.filt.sys
%WER 20.7 | 12643 89980 | 81.7 11.5 6.8 2.5 20.7 51.8 | 0.015 | exp/ihm/chain_cleaned/tdnn_lstm1i_sp_bi_ld5/decode_eval/ascore_11/eval_hires.ctm.filt.sys

# local/chain/tuning/run_tdnn_lstm_1m.sh --mic ihm --train-set train_cleaned --gmm tri3_cleaned
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does 1i already account for all the new changes like fast-lstm component. If not please specify what all things changed between 1i and 1m.

#Final train prob (xent) -0.722765 -0.915559
#Final valid prob (xent) -1.03985 -1.09907

# steps/info/chain_dir_info.pl exp/ihm/chain_cleaned/tdnn_lstm1i_sp_bi_ld5/ exp/ihm/chain_cleaned/tdnn_lstm1l_sp_bi_ld5/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please specify the set of flags to be used to recreate these results.

#Final train prob (xent) -0.683776 -0.884698
#Final valid prob (xent) -1.05254 -1.09002

# steps/info/chain_dir_info.pl exp/ihm/chain_cleaned/tdnn_lstm1j_sp_bi_ld5/ exp/ihm/chain_cleaned/tdnn_lstm1m_sp_bi_ld5/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please specify the flags to be specified to recreate these results.

configs.append("# Input = (i_part, f_part, c_part, o_part, c_{t-1}), output = (c_t, m_t)")
configs.append("# See cu-math.h:ComputeLstmNonlinearity() for details.")
configs.append("component name={0}.lstm_nonlin type=LstmNonlinearityComponent cell-dim={1} {2}".format(name, cell_dim, lstm_str))
configs.append("component name={0}.lstm_nonlin type=LstmNonlinearityComponent cell-dim={1} "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using named arguments is preferable when you have so many fields.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vijayaditya Sorry Vijay, I'm not quite clear how to use named arguments here, can you give some detailed examples?

const Real i_t = 1 / (1 + exp(-i_part - w_ic * c_prev));
const Real f_t = 1 / (1 + exp(-f_part - w_fc * c_prev));

const Real i_scale = (have_dropout_mask ?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: has_dropout_mask might be easier to follow than have_dropout_mask.

@danpovey
Copy link
Contributor

danpovey commented Apr 12, 2017 via email

@GaofengCheng
Copy link
Contributor Author

@danpovey PR for SWBD and Tedlium will take about 2~3 days

@danpovey
Copy link
Contributor

@GaofengCheng, how much longer till this is ready to merge?

@danpovey danpovey merged commit d8be99a into kaldi-asr:master Apr 20, 2017
kronos-cm added a commit to kronos-cm/kaldi that referenced this pull request Apr 28, 2017
* 'master' of https://github.com/kaldi-asr/kaldi: (21 commits)
  [egs] bug-fix in egs/ami/s5/run_ihm.sh (kaldi-asr#1577)
  [src] Minor bug-fixes in compute-wer-bootci and WSJ run.sh.  Thanks: @osadjadi
  [egs] Add soft link for mini-librispeech setup
  [egs] adding results and cleanup in mini-librispeech
  [egs] Add mini-librispeech example scripts [intended as a sanity-checker/tutorial setup] (kaldi-asr#1566)
  [src] Fix to testing code signal-test.cc, change threshold to resolve failure (kaldi-asr#1565)
  [src] Add documentation for dropout function.
  [src,scripts,egs]  Add dropout for nnet3 LSTMs, with recipes. (kaldi-asr#1537)
  [src] nnet3 online silence weighting - adding frame subsampling factor (kaldi-asr#1559)
  [doc] Small edit to hmm.dox, clarifying something
  [egs] Added check for kaldi_lm being installed in fisher_swbd recipe. (kaldi-asr#1558)
  Update travis.yml so PRs to kaldi_52 are built
  [srcipts] steps/nnet3/report/generate_plots.py: plot 5,50,95th percentile of value and derivative instead of mean+-stddev (kaldi-asr#1472)
  [egs] AMI TDNN Results Update (kaldi-asr#1545)
  [src] add template instantiations for ConvertStringToReal, address issue kaldi-asr#1544
  [egs,scripts,src] SID and LID tools and scripts: cosmetic improvements, better error-handling, and various minor fixes; results unchanged. (kaldi-asr#1543)
  [src] Change ConvertStringToReal to be locale-independent (i.e. always-US).  Fixes android issue. (kaldi-asr#1513)
  [scripts] nnet3 : fix issue where LDA estimation failed for LSTMs with label delay (kaldi-asr#1540)
  [scripts] fix to get_egs_targets.sh (thanks: David Pye)
  [src] Fix copy-feats for using the --write-num-frames and --compress true flags at the same time (kaldi-asr#1541)
  ...
Skaiste pushed a commit to Skaiste/idlak that referenced this pull request Sep 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants