PyTorch implementation of char-rnn (character-level language model)
Switch branches/tags
Nothing to show
Clone or download
Latest commit 282bcb6 Dec 19, 2017


A PyTorch implementation of char-rnn for character-level text generation. This is copied from the Practical PyTorch series.


Download this Shakespeare dataset (from the original char-rnn) as shakespeare.txt. Or bring your own dataset — it should be a plain text file (preferably ASCII).

Run with the dataset filename to train and save the network:

> python shakespeare.txt

Training for 2000 epochs...
(... 10 minutes later ...)
Saved as

After training the model will be saved as [filename].pt.

Training options

Usage: [filename] [options]

--model            Whether to use LSTM or GRU units    gru
--n_epochs         Number of epochs to train           2000
--print_every      Log learning rate at this interval  100
--hidden_size      Hidden size of GRU                  50
--n_layers         Number of GRU layers                2
--learning_rate    Learning rate                       0.01
--chunk_len        Length of training chunks           200
--batch_size       Number of examples per batch        100
--cuda             Use CUDA


Run with the saved model from training, and a "priming string" to start the text with.

> python --prime_str "Where"

Where, you, and if to our with his drid's
Weasteria nobrand this by then.

It his zersit at he

Generation options

Usage: [filename] [options]

-p, --prime_str      String to prime generation with
-l, --predict_len    Length of prediction
-t, --temperature    Temperature (higher is more chaotic)
--cuda               Use CUDA