基于多层 LSTM 的文本、歌词与音乐生成技术
1. 文本生成模型训练
在文本生成任务中,选择后续字符的方式至关重要。常见的贪心采样方法会导致生成的字符重复,无法形成连贯的语言。因此,我们采用随机采样方法,为预测概率分布增加一定的随机性。
1.1 随机采样代码
import numpy as np
def sample(preds, temperature=1.0):
preds = np.asarray(preds).astype('float64')
preds = np.log(preds) / temperature
exp_preds = np.exp(preds)
preds = exp_preds / np.sum(exp_preds)
probas = np.random.multinomial(1, preds, 1)
return np.argmax(probas)
1.2 训练与文本生成迭代
我们从 30 个训练周期开始,每次迭代训练模型 1 个周期。然后随机选择种子文本,将其转换为独热编码格式,并预测 100 个字符。在每次迭代中,将新生成的字符添加到种子文本中。
import random
import sys
# 假设 model、x、y、text、maxlen、chars、char_indices、callbacks_list 已经定义
for epoch in range(1, 30):
超级会员免费看
订阅专栏 解锁全文
781

被折叠的 条评论
为什么被折叠?



