add fourth chapter
This commit is contained in:
parent
1ea9f5acd0
commit
22e6d87ad9
|
|
@ -296,17 +296,17 @@ print("Variance:\n", var)
|
||||||
|
|
||||||
```python
|
```python
|
||||||
Normalized layer outputs:
|
Normalized layer outputs:
|
||||||
tensor([[ 0.6159, 1.4126, -0.8719, 0.5872, -0.8719, -0.8719],
|
tensor([[ 0.6159, 1.4126, -0.8719, 0.5872, -0.8719, -0.8719],
|
||||||
[-0.0189, 0.1121, -1.0876, 1.5173, 0.5647, -1.0876]],
|
[-0.0189, 0.1121, -1.0876, 1.5173, 0.5647, -1.0876]],
|
||||||
grad_fn=<DivBackward0>)
|
grad_fn=<DivBackward0>)
|
||||||
|
|
||||||
Mean:
|
Mean:
|
||||||
tensor([[2.9802e-08],
|
tensor([[2.9802e-08],
|
||||||
[3.9736e-08]], grad_fn=<MeanBackward1>)
|
[3.9736e-08]], grad_fn=<MeanBackward1>)
|
||||||
|
|
||||||
Variance:
|
Variance:
|
||||||
tensor([[1.],
|
tensor([[1.],
|
||||||
[1.]], grad_fn=<VarBackward0>)
|
[1.]], grad_fn=<VarBackward0>)
|
||||||
```
|
```
|
||||||
|
|
||||||
请注意,输出张量中的值`2.9802e-08`是`2.9802 × 10^-8`的科学记数法表示,用十进制形式表示为`0.0000000298`。这个值虽然非常接近 0,但由于计算机表示数字的精度有限,会产生微小的数值误差,因此不完全等于 0。
|
请注意,输出张量中的值`2.9802e-08`是`2.9802 × 10^-8`的科学记数法表示,用十进制形式表示为`0.0000000298`。这个值虽然非常接近 0,但由于计算机表示数字的精度有限,会产生微小的数值误差,因此不完全等于 0。
|
||||||
|
|
@ -318,11 +318,11 @@ torch.set_printoptions(sci_mode=False)
|
||||||
print("Mean:\n", mean)
|
print("Mean:\n", mean)
|
||||||
print("Variance:\n", var)
|
print("Variance:\n", var)
|
||||||
Mean:
|
Mean:
|
||||||
tensor([[ 0.0000],
|
tensor([[ 0.0000],
|
||||||
[ 0.0000]], grad_fn=<MeanBackward1>)
|
[ 0.0000]], grad_fn=<MeanBackward1>)
|
||||||
Variance:
|
Variance:
|
||||||
tensor([[1.],
|
tensor([[1.],
|
||||||
[1.]], grad_fn=<VarBackward0>)
|
[1.]], grad_fn=<VarBackward0>)
|
||||||
```
|
```
|
||||||
|
|
||||||
在本节内容中,我们已逐步实现并应用了层归一化。现在将这个过程封装到一个 PyTorch 模块中,以便后续在 GPT 模型中使用。
|
在本节内容中,我们已逐步实现并应用了层归一化。现在将这个过程封装到一个 PyTorch 模块中,以便后续在 GPT 模型中使用。
|
||||||
|
|
@ -366,11 +366,11 @@ print("Variance:\n", var)
|
||||||
|
|
||||||
```python
|
```python
|
||||||
Mean:
|
Mean:
|
||||||
tensor([[ -0.0000],
|
tensor([[ -0.0000],
|
||||||
[ 0.0000]], grad_fn=<MeanBackward1>)
|
[ 0.0000]], grad_fn=<MeanBackward1>)
|
||||||
Variance:
|
Variance:
|
||||||
tensor([[1.0000],
|
tensor([[1.0000],
|
||||||
[1.0000]], grad_fn=<VarBackward0>)
|
[1.0000]], grad_fn=<VarBackward0>)
|
||||||
```
|
```
|
||||||
|
|
||||||
在本节中,我们介绍了实现 GPT 架构所需的一个基础模块(`LayerNorm`),如图 4.7 所示。
|
在本节中,我们介绍了实现 GPT 架构所需的一个基础模块(`LayerNorm`),如图 4.7 所示。
|
||||||
|
|
@ -405,12 +405,12 @@ $$ \text{GELU}(x) \approx 0.5 \cdot x \cdot\left(1+\tanh \left[\sqrt{(2 / \pi)}
|
||||||
# Listing 4.3 An implementation of the GELU activation function
|
# Listing 4.3 An implementation of the GELU activation function
|
||||||
class GELU(nn.Module):
|
class GELU(nn.Module):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def forward(self, x):
|
def forward(self, x):
|
||||||
return 0.5 * x * (1 + torch.tanh(
|
return 0.5 * x * (1 + torch.tanh(
|
||||||
torch.sqrt(torch.tensor(2.0 / torch.pi)) *
|
torch.sqrt(torch.tensor(2.0 / torch.pi)) *
|
||||||
(x + 0.044715 * torch.pow(x, 3))
|
(x + 0.044715 * torch.pow(x, 3))
|
||||||
))
|
))
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue