Eine Pytorch -Implementierung eines neuronalen probabilistischen Sprachmodells. Code für Training und Datenladung basierend auf dem Pytorch-Beispiel-Sprachmodell.
Um den Wikitext-2-Datensatz zu erhalten, rennen Sie:
./get-data.shEin Beispiel auf Wortebene:
./main.py train --name wiki --order 5 --batch-size 32Ein Beispiel auf Charakterebene:
./main.py train --name wiki-char --use-char --order 12 --emb-dim 20 --batch-size 1024Wenn Sie vorbereitete Handschuhvektoren haben, können Sie diese verwenden:
./main.py train --name wiki --use-glove --glove-dir your/glove/dir --emb-dim 50Einige andere Datenargumente sind:
--lower # Lowercase all words in training data.
--no-headers # Remove all headers such as `=== History ===`. Mit den folgenden Argumenten dauert eine Epoche ungefähr 45 Minuten:
./main.py train --name wiki --order 5 --use-glove --emb-dim 50 --hidden-dims 100
--batch-size 128 --epochs 10 # Test perplexity 224.89 
Wir können die Grenzen untersuchen:
./main.py train --name wiki --order 13 --emb-dim 100 --hidden-dims 500
--epochs 40 --batch-size 512 --dropout 0.5 # Test perplexity 153.12 
./main.py train --name wiki --order 13 --emb-dim 300 --hidden-dims 1400
--epochs 40 --batch-size 256 --dropout 0.65 # Test perplexity 152.64 
Verwenden Sie, um Text zu generieren:
./main.py generate --checkpoint path/to/saved/model Der <eos> -Token wird durch eine neue Linie ersetzt und der Rest wird so gedruckt.
Andere Argumente der Generation sind:
--temperature 0.9 # Temperature to manipulate distribution.
--start # Provide an optional start of the generated text (can be longer than order)
--no-unk # Do not generate unks, especially useful for low --temperature.
--no-sos # Do not print <sos> tokensSiehe einige generierte Text in generate.txt.
Verwenden Sie: Um die geschulten Einbettungen des Modells zu visualisieren, verwenden Sie:
./main.py plot --checkpoint path/to/saved/modelDies passt zu einer 2D-T-SNE-Handlung mit K-Means-Clusterfärbung der 1000 häufigsten Wörter im Datensatz. Das erfordert Bokeh für das Planen und Scikit-Learn für T-SNE und K-Means.
Sehen Sie hier ein Beispiel HTML. (GitHub rendert keine HTML -Dateien. Um diesen Link zu rendern, herunterzuladen und zu öffnen oder zu verwenden.)
python>=3.6
torch==0.3.0.post4
numpy
tqdm