RNN实施

时间:2018-04-21 10:32:34

标签: python-3.x recurrent-neural-network pytorch rnn

我将使用Pytorch实现RNN。但是,在此之前,我在理解问题中提到的字符级单热编码方面遇到了一些困难。

请在下面找到问题

  • 选择您希望神经网络学习的文字,但请记住您的 数据集必须非常大才能学习结构! RNN已经过培训 在高度多样化的文本(小说,歌词,Linux内核等)上取得成功,所以你 可以发挥创意。作为一个简单的选择,古腾堡书籍是免费书籍的来源 你可以下载.txt格式的完整小说。

  • 我们将为此模型使用字符级表示。为此,您可以使用 扩展ASCII,256个字符。当您阅读所选择的训练集时,您将会 将一个字符一次读入一个热编码,即每个字符 将映射到1和0的向量,其中一个指示哪个字符 在场:

    char→[0,0,···,1,···,0,0] 您的RNN将读取这些长度为256的二进制向量作为输入。

所以,例如,我在python中读过一本小说。总独特字符数为97.总字符数约为300,000。

那么,我的输入是97 x 256一个热编码矩阵吗?

或者它是300,000 x 256一个热编码矩阵?

1 个答案:

答案 0 :(得分:1)

一个热点假设你的每个载体在一个地方应该是不同的。所以,如果你有97个独特的角色,那么我认为你应该使用1-hot大小的矢量(97 + 1 = 98)。额外的矢量将所有未知字符映射到该矢量。但是你也可以使用256长度的矢量。所以你输入的将是:

B x N x V(B =批量大小,N =字符数,V =一个热矢量大小)。

但是如果你正在使用库,他们通常会询问词汇表中的字符索引,并且它们处理一个热转换的索引。希望有所帮助。