
8.4.1. 无隐状态的神经网络

8.4.2. 有隐状态的循环神经网络

代码如下:
import torch
from d2l import torch as d2l
X, W_xh = torch.normal(0, 1, (3, 1)), torch.normal(0, 1, (1, 4))
H, W_hh = torch.normal(0, 1, (3, 4)), torch.normal(0, 1, (4, 4))
torch.matmul(X, W_xh) + torch.matmul(H, W_hh)
现在,我们沿列(轴1)拼接矩阵X和H, 沿行(轴0)拼接矩阵W_xh和W_hh。 这两个拼接分别产生(3,5)形状和形状(5,4)的矩阵。 再将这两个拼接的矩阵相乘, 我们得到与上面相同形状的输出矩阵。
torch.matmul(torch.cat((X, H), 1), torch.cat((W_xh, W_hh), 0))
输出是相同的,这个数学上很容易证明了。
8.4.3. 基于循环神经网络的字符级语言模型
8.4.4. 困惑度(Perplexity)
最后,让我们讨论如何度量语言模型的质量, 这将在后续部分中用于评估基于循环神经网络的模型。 一个好的语言模型能够用高度准确的词元来预测我们接下来会看到什么。 考虑一下由不同的语言模型给出的对“It is raining …”(“…下雨了”)的续写:
-
“It is raining outside”(外面下雨了);
-
“It is raining banana tree”(香蕉树下雨了);
-
“It is raining piouw;kcj pwepoiut”(piouw;kcj pwepoiut下雨了


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



