Views
No views yet
“If the fore of the cobled the stell of her breath…”
char_to_idx.jsoncacifer_char_lstm_storyteller.keras – Keras model filechar_to_idx.json – character → indexidx_to_char.json – index → character1import json, numpy as np
2from tensorflow.keras.models import load_model
3
4model = load_model("cacifer_char_lstm_storyteller.keras", compile=False)
5char_to_idx = json.load(open("char_to_idx.json"))
6idx_to_char = {int(k): v for k, v in json.load(open("idx_to_char.json")).items()}
7seq_len = 60
8
9def sample_char(probs, temperature=0.7):
10 probs = np.asarray(probs, dtype="float64")
11 if temperature != 1.0:
12 logits = np.log(probs + 1e-8) / temperature
13 probs = np.exp(logits)
14 probs /= probs.sum()
15 probs = np.clip(probs, 1e-12, 1.0)
16 probs /= probs.sum()
17 return np.random.choice(len(probs), p=probs)
18
19def generate(seed, length=400, temperature=0.7):
20 x = seed[-seq_len:]
21 for _ in range(length):
22 x_idx = np.array([[char_to_idx.get(c, 0) for c in x]])
23 preds = model.predict(x_idx, verbose=0)[0]
24 x += idx_to_char[sample_char(preds, temperature)]
25 return x
26
27seed = "I am Cacifer, a cat, listening to the bells and the breathing of the guests."
28print(generate(seed, length=400, temperature=0.6))
29