mravanelli / pytorch-kaldi

pytorch-kaldi is a project for developing state-of-the-art DNN/RNN hybrid speech recognition systems. The DNN part is managed by pytorch, while feature extraction, label computation, and decoding are performed with the kaldi toolkit.
2.37k stars 446 forks source link

Why no automated testing? Travis CI, CircleCI, AppVeyor, Azure Pipelines, etc? #150

Closed cclauss closed 5 years ago

TParcollet commented 5 years ago

Hi,

PyTorch-Kaldi is currently in its first released version. It is going to be majorly re-worked soon to improve the toolkit. This first version is intended to quickly be able to experiment on acoustic models for research, with a possibility to deploy in production. The next version will integrate a continuous integration solution.

cclauss commented 5 years ago

Makes sense. If you pick a CI system and want a starter config file, let me know...

TParcollet commented 5 years ago

Sure! Thank you very much for proposing.

Mistobaan commented 5 years ago

Github now has its own CI build system too.

cclauss commented 5 years ago

@Mistobaan actions/starter-workflows#25 Now contains the tests that I would have applied.

cclauss commented 5 years ago

flake8 testing of https://github.com/mravanelli/pytorch-kaldi on Python 3.7.1

$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics

./run_exp.py:249:50: F821 undefined name 'valid_peformance_dict'
                    valid_peformance_dict_prev = valid_peformance_dict
                                                 ^
./neural_networks.py:1745:20: F821 undefined name 'sru'
        self.sru = sru.SRU(self.input_dim, self.hidden_size,
                   ^
./kaldi_decoding_scripts/utils/filt.py:14:17: E999 SyntaxError: invalid syntax
        print " ".join(map(lambda word: word if word in vocab else '<UNK>', line.strip().split()))
                ^
./kaldi_decoding_scripts/utils/reverse_arpa.py:9:39: E999 SyntaxError: invalid syntax
    print 'usage: reverse_arpa arpa.in'
                                      ^
./kaldi_decoding_scripts/utils/nnet/make_cnn2d_proto.py:170:19: E999 SyntaxError: invalid syntax
print "<NnetProto>"
                  ^
./kaldi_decoding_scripts/utils/nnet/gen_hamm_mat.py:45:9: E999 SyntaxError: invalid syntax
print '['
        ^
./kaldi_decoding_scripts/utils/nnet/make_blstm_proto.py:57:19: E999 SyntaxError: invalid syntax
print "<NnetProto>"
                  ^
./kaldi_decoding_scripts/utils/nnet/make_lstm_proto.py:57:19: E999 SyntaxError: invalid syntax
print "<NnetProto>"
                  ^
./kaldi_decoding_scripts/utils/nnet/gen_dct_mat.py:52:9: E999 SyntaxError: invalid syntax
print '['
        ^
./kaldi_decoding_scripts/utils/nnet/make_cnn_proto.py:91:19: E999 SyntaxError: invalid syntax
print "<NnetProto>"
                  ^
./kaldi_decoding_scripts/utils/nnet/make_nnet_proto.py:103:44: E999 SyntaxError: invalid syntax
  if o.with_proto_head : print "<NnetProto>"
                                           ^
./kaldi_decoding_scripts/utils/nnet/gen_splice.py:43:16: E999 SyntaxError: invalid syntax
print '<splice>', dim_out, dim_in
               ^
10    E999 SyntaxError: invalid syntax
2     F821 undefined name 'sru'
12

E901,E999,F821,F822,F823 are the "showstopper" flake8 issues that can halt the runtime with a SyntaxError, NameError, etc. These 5 are different from most other flake8 issues which are merely "style violations" -- useful for readability but they do not effect runtime safety.