cmusphinx / g2p-seq2seq

G2P with Tensorflow
Other
670 stars 194 forks source link

Zero accuracy #23

Closed nshmyrev closed 8 years ago

nshmyrev commented 8 years ago

I run

python /home/ubuntu/g2p-seq2seq/g2p_seq2seq/g2p.py --train cmudict.dict --num_layers 4 --size 64 --model model

I get

WER :  0.964269283852
Accuracy :  0.0357307161478
nshmyrev commented 8 years ago

It doesn't work with 2 layers as well. Log output is in /home/ubuntu/g2p-seq2seq/models/nick-cmu/nohup.out

nshmyrev commented 8 years ago

Code is bad in https://github.com/cmusphinx/g2p-seq2seq/commit/cd51a325cad7c92fa62c7e0f988de605525b944d, needs review

nshmyrev commented 8 years ago

We need to figure out why model does not function without target phoneme ids

nshmyrev commented 8 years ago

Training on cmudict 4 layers 64 elements

WER : 0.42332464346 Accuracy : 0.57667535654

nshmyrev commented 8 years ago

2 layers 512 elements

WER : 0.394268272003

Independent test:

WER : 0.386580759831 Accuracy : 0.613419240169

gorinars commented 8 years ago

The difference between independent test and test inside training procedure comes from the fact that the latter implicitly feeds reference phonemes in the LSTM history in the current implementation. I was expecting independent test to perform worse...

Testing WER right after training is currently impossible due to a bug in Tensorflow

nurtas-m commented 8 years ago

If you want to achieve higher accuracy, it is necessary to change default value of learning_rate_decay_factor from 0.8 to higher value (for example, to 0.95). But it will take more time to train.

nshmyrev commented 8 years ago

It must be default then. There is no sense to have settings which does not provide best accuracy.

nshmyrev commented 8 years ago

With 0.95 still not good

WER : 0.375360352722 Accuracy : 0.624639647278

nshmyrev commented 8 years ago

Phonetisaurus 36.04

nshmyrev commented 8 years ago

PRONALSYL test (you incorrectly call it uppercase)

nohup python /home/ubuntu/g2p-seq2seq/g2p_seq2seq/g2p.py --train cmudict.dic.train --test cmudict.dic.test --num_layers 2 --size 512 --model model --max_steps 0 --learning_rate_decay_factor 0.99

result

WER :  0.305833333333
Accuracy :  0.694166666667
nshmyrev commented 8 years ago

valid = test same accuracy, 30%. There was a regression

nshmyrev commented 8 years ago

This was magically solved somehow, in new versions accuracy matches the expectation