从爱尔兰歌曲到莎士比亚:LSTM文本生成模型的优化之旅

上一篇:《再用RNN神经网络架构设计生成式语言模型》

序言:本文探讨了如何通过多种方法改进模型的输出,包括扩展数据集、调整模型架构、优化训练数据的窗口设置,以及采用字符级编码。这些方法旨在提高生成文本的准确性和合理性,同时强调实验和调整对模型设计与优化的重要性。

扩展数据集

你可以很简单地将硬编码数据集的模式扩展为使用文本文件。我已经托管了一个包含大约1700行文本的文件,这些文本从许多歌曲中收集而来,供你进行实验。稍作修改,你就可以使用这个文本文件,而不是单个硬编码的歌曲。

在 Colab 中下载数据,可以使用以下代码:

!wget --no-check-certificate \

https://storage.googleapis.com/laurencemoroney-blog.appspot.com/ \

irish-lyrics-eof.txt -O /tmp/irish-lyrics-eof.txt

然后,你可以像这样将文本加载到你的语料库中:

data = open('/tmp/irish-lyrics-eof.txt').read()

corpus = data.lower().split("\n")

接下来的代码无需修改即可运行!将这个数据集训练1000个epoch后,准确率大约可以达到60%,但增长曲线趋于平缓(图8-7)。

图8-7. 在更大的数据集上进行训练

再次尝试短语“in the town of athy”时,预测结果是“one”,但这次的概率只有40%。

对于“sweet jeremy saw dublin”,预测的下一个词是“drawn”,概率为59%。预测接下来的10个词的结果为:

sweet jeremy saw dublin drawn and fondly i am dead and the parting graceful

结果看起来稍微好了一些!但我们还能进一步改进吗?

调整模型架构

改进模型的一种方法是更改其架构,使用多个堆叠的LSTM层。这非常简单,只需要确保在第一层LSTM中将return_sequences设置为True。以下是代码:

python

Copy code<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值