用 PyTorch 实现基于字符的循环神经网络
在过去的几周里,我花了很多时间用 PyTorch 实现了一个 char-rnn 的版本。我以前从未训练过神经网络,所以这可能是一个有趣的开始。 这个想法(来自 循环神经网络的不合理效应 )可以让你在文本上训练一个基于字符的循环神经网络recurrent neural network(RNN),并得到一些出乎意料好的结果。 不过,虽然没有得到我想要的结果,但是我还是想分享一些示例代码和结果,希望对其他开始尝试使用 PyTorch 和 RNN 的人有帮助。 这是 Jupyter 笔记本格式的代码: char-rnn in PyTorch.ipynb 。你可以点击这个网页最上面那个按钮 “Open in Colab”,就可以在 Google 的 Colab 服务中打开,并使用免费的 GPU 进行训练。所有的东西加起来大概有 75 行代码,我将在这篇博文中尽可能地详细解释。 第一步:准备数据 首先,我们要下载数据。我使用的是古登堡项目Project Gutenberg中的这个数据: Hans Christian Anderson’s fairy tales 。 !wget -O fairy-tales.txt 这个是准备数据的代码。我使用 fastai 库中的 Vocab 类进行数据处理,它能将一堆字母转换成“词表”,然后用这个“词表”把字母变成数字。 之后我们就得到了一个大的数字数组(