2017-02-02 15 views
15

Uruchomienie modelu po wyjęciu z pudełka generuje te pliki w katalogu danych:Szkolenie niestandardowy zestaw danych z przetłumaczyć modelu

ls 
dev-v2.tgz       newstest2013.en 
giga-fren.release2.fixed.en   newstest2013.en.ids40000 
giga-fren.release2.fixed.en.gz  newstest2013.fr 
giga-fren.release2.fixed.en.ids40000 newstest2013.fr.ids40000 
giga-fren.release2.fixed.fr   training-giga-fren.tar 
giga-fren.release2.fixed.fr.gz  vocab40000.from 
giga-fren.release2.fixed.fr.ids40000 vocab40000.to 

Czytając src translate.py:

https://github.com/tensorflow/models/blob/master/tutorials/rnn/translate/translate.py

tf.app.flags.DEFINE_string("from_train_data", None, "Training data.") 
tf.app.flags.DEFINE_string("to_train_data", None, "Training data.") 

Aby wykorzystać własne dane treningowe, utworzyłem dane z moich danych z pociągu i dodałem własne dane treningowe do każdego z tych katalogów, trainin g dane są zawarte w plikach mydata.from & mydata.to

my-to-train-data contains mydata.from 
my-from-train-data contains mydata.to 

nie mogę znaleźć dokumentację, aby przy użyciu własnych danych szkoleniowych lub w jakim formacie powinien upłynąć więc wywnioskować to z src translate.py i treści katalogu danych utworzonego podczas wykonywania modelu tłumaczenia z pudełka.

Zawartość mydata.from:

Is this a question 

zawartość mydata.to:

Yes! 

ja spróbuje trenować model używając:

python translate.py --from_train_data my-from-train-data --to_train_data my-to-train-data 

Powrócisz ze związkiem błąd:

tensorflow.python.framework.errors_impl.NotFoundError: my-from-train-data.ids40000 

Pojawia się Potrzebuję utworzyć plik my-from-train-data.ids40000, jaka powinna być jego zawartość? Czy istnieje przykład szkolenia tego modelu przy użyciu niestandardowych danych?

+0

Czy otrzymujesz dane wyjściowe ze skryptu (inne niż błąd)? –

+0

@ MaximilianKöstler nie, tylko błąd. Czy wyszkoliłeś ten model za pomocą niestandardowego zestawu danych? –

Odpowiedz

3

niebieskie niebo

Wielkie pytanie, szkolenia modelu na własnym danych jest bardziej zabawa niż przy użyciu standardowych danych. Przykładem tego, co można umieścić w terminalu to:

python translate.py --from_train_data mydatadir/to_translate.in --to_train_data mydatadir/to_translate.out --from_dev_data mydatadir/test_to_translate.in --to_dev_data mydatadir/test_to_translate.out --train_dir train_dir_model --data_dir mydatadir

Co poszło nie tak w swoim przykładem jest to, że nie są skierowane do pliku, ale w folderze. from_train_data powinien zawsze wskazywać plik w postaci zwykłego tekstu, którego wiersze powinny być wyrównane do tych w pliku to_train_data.

Ponadto: jak tylko uruchomisz ten skrypt z sensownymi danymi (więcej niż jeden wiersz;)), translate.py wygeneruje twoje identyfikatory (40 000 jeśli nie ustawiono from_vocab_size i to_vocab_size). Ważne jest, aby wiedzieć, że ten plik jest tworzony w folderze określonym przez data_dir ... jeśli go nie określisz, oznacza to, że są one generowane w/tmp (wolę je w tym samym miejscu co moje dane).

Mam nadzieję, że to pomoże!

2

Szybka odpowiedź:

Pojawia muszę utworzyć pliku my-z-pociąg-data.ids40000, co powinno to być zawartość? Czy istnieje przykład szkolenia tego modelu przy użyciu niestandardowych danych?

Tak, brakuje pliku vocab/word-id, który jest generowany podczas przygotowywania do utworzenia danych.

Oto poradnik od Tesnorflow documentation.

szybkie nadmiernej uwagi na plikach i dlatego może być mylony przez plikach wysyłanych vs co używać:

  • python/ops/seq2seq.py: >> Biblioteka dla budowania sekwencji wobec sekwencji modeli.
  • models/rnn/translate/seq2seq_model.py: >> Neuralowy model sekwencji do sekwencji.
  • models/rnn/translate/data_utils.py: >> Funkcje pomocnicze do przygotowywania danych tłumaczeń.
  • models/rnn/translate/translate.py: >> Binarny, który trenuje i uruchamia model tłumaczenia.

Plik Tensorflow translate.py wymaga wygenerowania kilku plików podczas tłumaczenia własnego korpusu.

  1. To musi być wyrównane, co oznacza: language line 1 in file 1. <>language line 1 file 2. Ten model pozwala robić kodowania i dekodowania.

  2. Chcesz się upewnić, słownictwo zostały wygenerowane z zestawu danych przy użyciu tego pliku: Sprawdź kroki:

python translate.py --data_dir [your_data_directory] --train_dir [checkpoints_directory] --en_vocab_size=40000 --fr_vocab_size=40000

Uwaga! Jeśli rozmiar Vocab jest mniejszy, zmień tę wartość.

Jest już dyskusja tutaj tensorflow/issues/600

Jeśli wszystko inne zawiedzie, sprawdź ten ByteNet wdrożenie w Tensorflow które wykonuje zlecenie, jak również.

Powiązane problemy