neural ngram
1.0.0
神经概率语言模型的Pytorch实施。基于Pytorch示例Word Level语言模型的培训和数据加载代码。
要获取Wikitext-2数据集,请运行:
./get-data.sh一个单词级别的示例:
./main.py train --name wiki --order 5 --batch-size 32角色级别的示例:
./main.py train --name wiki-char --use-char --order 12 --emb-dim 20 --batch-size 1024如果您曾经有过手套矢量,则可以使用这些媒介:
./main.py train --name wiki --use-glove --glove-dir your/glove/dir --emb-dim 50其他一些数据参数是:
--lower # Lowercase all words in training data.
--no-headers # Remove all headers such as `=== History ===`. 有了以下论点,一个时期大约需要45分钟:
./main.py train --name wiki --order 5 --use-glove --emb-dim 50 --hidden-dims 100
--batch-size 128 --epochs 10 # Test perplexity 224.89 
我们可以探索限制:
./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 
要生成文本,请使用:
./main.py generate --checkpoint path/to/saved/model <eos>令牌被换用的线代替,其余的按原样打印。
其他一代论点是:
--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> tokens请参阅generate.txt中的一些生成文本。
要可视化模型的训练嵌入,请使用:
./main.py plot --checkpoint path/to/saved/model这与数据集中1000个最常见单词的K-Means群集着色拟合了2D T-SNE图。对于T-SNE和K-均值的绘图和Scikit-Learn的需要。
在此处查看示例HTML。 (github不会渲染HTML文件。渲染,下载和打开或使用此链接。)
python>=3.6
torch==0.3.0.post4
numpy
tqdm