moby-dick / README.md
etweedy's picture
Update README.md
526b5f5
---
title: Moby Dick Story Generator
emoji: 🐳
colorFrom: purple
colorTo: yellow
sdk: gradio
sdk_version: 3.15.0
app_file: app.py
pinned: false
license: apache-2.0
---
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
This is an app which asks the user to enter the beginning of a story (along with some parameter options) and returns a continuation of the input. The app uses a character-level Recurrent Neural Network (RNN) which was trained on a text file containing the novel Moby-Dick by Herman Melville: https://www.gutenberg.org/files/2701/2701-0.txt
The RNN architecture is as follows:
RNN(
(embedding): Embedding(98, 256)
(rnn): LSTM(256, 512, batch_first=True)
(fc): Linear(in_features=512, out_features=98, bias=True)
)
Note: the number of input and output features is 98, which is the number of unique characters appearing in the text of Moby-Dick. Here is that character set:
{'O', 'Q', 'b', 'K', ',', 'W', 'l', 's', 'â', 'm', ':', 'Z', 'D', '*', 'u', '9', '”', '-', 'w', 'M', '7', '0', 'H', 'J', '?', ')', 'ו', 'Œ', '2', 'æ', 'o', '(', 'g', 'k', 'œ', 'X', 'ς', 'z', 'U', '‘', 'i', '&', 'T', '\n', 'a', 'ח', 'η', 'V', '.', '5', 'S', '!', 'n', 'q', '—', 'p', '1', 't', ']', '6', 'x', 'v', 'L', '3', '[', 'f', '8', '£', '$', 'j', 'τ', 'N', 'B', 'é', '4', 'A', ';', 'E', 'h', 'd', 'r', 'P', 'Y', 'è', 'R', 'y', 'c', 'ο', '’', 'I', 'G', ' ', 'ϰ', 'e', 'F', '“', '_', 'C'}
The network was trained for 10000 epochs using the Adam optimizer and cross entropy loss function. Here are some of the loss values during training:
Epoch 0 loss: 4.5816
Epoch 1000 loss: 1.5822
Epoch 2000 loss: 1.4782
Epoch 3000 loss: 1.4852
Epoch 4000 loss: 1.4038
Epoch 5000 loss: 1.3745
Epoch 6000 loss: 1.3924
Epoch 7000 loss: 1.3997
Epoch 8000 loss: 1.4276
Epoch 9000 loss: 1.3314
Epoch 9800 loss: 1.3500