自学动手学深度学习系列(可以直接对照图片代码)
多层感知机(MLP)从零实现
import torch
from torch import nn
from d2l import torch as d2l
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
num_inputs, num_outputs, num_hiddens = 784, 10, 256
W1 = nn.Parameter(torch.randn(
num_inputs, num_hiddens, requires_grad=True) * 0.01)
# W1 是第一个全连接层的权重矩阵,大小为 (num_inputs, num_hiddens),使用了从标准正态分布中随机抽取的值乘以 0.01,并且设置了 requires_grad=True 表示这些参数在反向传播时需要计算梯度。
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))
# b1 是第一个全连接层的偏置向量,大小为 (num_hiddens,),初始值为零,并且也设置了 requires_grad=True
W2 = nn.Parameter(torch.randn(
num_hiddens, num_outputs, requires_grad=Tru