Nnet3 dropout: code for Fast LSTM and scripts for AMI etc#1537
Nnet3 dropout: code for Fast LSTM and scripts for AMI etc#1537danpovey merged 27 commits intokaldi-asr:masterfrom
Conversation
…ame dropout masks on i and f gates. Old dropout method not supported in this branch.
…t just (i,f); test on tedlium.
| %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 |
There was a problem hiding this comment.
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.
| #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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
@danpovey I have emailed the final pdf to you, later will go on updating this PR
vijayaditya
left a comment
There was a problem hiding this comment.
just some minor comments.
egs/ami/s5b/RESULTS_ihm
Outdated
| %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 |
There was a problem hiding this comment.
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/ |
There was a problem hiding this comment.
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/ |
There was a problem hiding this comment.
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} " |
There was a problem hiding this comment.
using named arguments is preferable when you have so many fields.
There was a problem hiding this comment.
@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 ? |
There was a problem hiding this comment.
NIT: has_dropout_mask might be easier to follow than have_dropout_mask.
|
What he means is something like
```
"component name={name}.lstm_nonlin... ".format(name=name, ...)
```
…On Tue, Apr 11, 2017 at 6:47 PM, Gaofeng Cheng ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In egs/wsj/s5/steps/libs/nnet3/xconfig/lstm.py
<#1537 (comment)>:
> @@ -833,14 +831,16 @@ def generate_lstm_config(self):
configs.append("# The core LSTM nonlinearity, implemented as a single component.")
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} "
@vijayaditya <https://github.com/vijayaditya> Sorry Vijay, I'm not quite
clear how to use named arguments here, can you give some detailed examples?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1537 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ADJVuyZnCR9mizJttpAp3Gi04X3JU7Lrks5rvC0-gaJpZM4M38oj>
.
|
|
@danpovey PR for SWBD and Tedlium will take about 2~3 days |
|
@GaofengCheng, how much longer till this is ready to merge? |
5epoch is on the way
also SWBD RESULTS updated
* '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) ...
…sr#1537) See also http://www.danielpovey.com/files/2017_interspeech_dropout.pdf this improves on the best recipes.
This PR will include:
Time schedule:
AMI-IHM-> (done)
AMI-SDM-> (done)
SWBD-> (done)
TEdlium-> (done)
(follow the time axis)