diff --git a/egs/wsj/s5/steps/libs/nnet3/xconfig/basic_layers.py b/egs/wsj/s5/steps/libs/nnet3/xconfig/basic_layers.py index 7c01689e86c..aa301eb4398 100644 --- a/egs/wsj/s5/steps/libs/nnet3/xconfig/basic_layers.py +++ b/egs/wsj/s5/steps/libs/nnet3/xconfig/basic_layers.py @@ -998,7 +998,8 @@ def set_default_configs(self): self.config = {'input': '[-1]', 'dim': -1, 'cepstral-lifter': 22.0, - 'affine-transform-file': ''} + 'affine-transform-file': '', + 'write-init-config': True} def check_configs(self): if self.config['affine-transform-file'] is None: @@ -1030,6 +1031,13 @@ def get_full_config(self): output_dim = self.output_dim() transform_file = self.config['affine-transform-file'] + if self.config['write-init-config']: + # to init.config we write an output-node with the name 'output' and + # with a Descriptor equal to the descriptor that's the input to this + # layer. This will be used to accumulate stats to learn the LDA transform. + line = 'output-node name=output input={0}'.format(descriptor_final_string) + ans.append(('init', line)) + idct_mat = common_lib.compute_idct_matrix( input_dim, output_dim, self.config['cepstral-lifter']) # append a zero column to the matrix, this is the bias of the fixed