23.8. d2l API 文档
在 Colab 中打开 Notebook
在 Colab 中打开 Notebook
在 Colab 中打开 Notebook
在 Colab 中打开 Notebook
在 SageMaker Studio Lab 中打开 Notebook

本节展示 d2l 包中的类和函数(按字母顺序排序),并显示它们在书中的定义位置,以便您可以找到更详细的实现和解释。另请参阅 GitHub 仓库中的源代码。

23.8.1.

class d2l.torch.AdditiveAttention(num_hiddens, dropout, **kwargs)[源代码]

基类:Module

加性注意力。

定义于 11.3.2.2节

forward(queries, keys, values, valid_lens)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.AddNorm(norm_shape, dropout)[源代码]

基类:Module

残差连接后跟层归一化。

定义于 11.7.2节

forward(X, Y)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.AttentionDecoder[源代码]

基类:Decoder

基于注意力的解码器接口基类。

定义于 11.4节

property attention_weights
class d2l.torch.Classifier(plot_train_per_epoch=2, plot_valid_per_epoch=1)[源代码]

基类:Module

分类模型的基类。

定义于 4.3节

accuracy(Y_hat, Y, averaged=True)[源代码]

计算正确预测的数量。

定义于 4.3节

layer_summary(X_shape)[源代码]

定义于 7.6节

loss(Y_hat, Y, averaged=True)[源代码]

定义于 4.5节

validation_step(batch)[源代码]
class d2l.torch.DataModule(root='../data', num_workers=4)[源代码]

基类:HyperParameters

数据的基类。

定义于 3.2.2节

get_dataloader(train)[源代码]
get_tensorloader(tensors, train, indices=slice(0, None, None))[源代码]

定义于 3.3节

train_dataloader()[源代码]
val_dataloader()[源代码]
class d2l.torch.Decoder[源代码]

基类:Module

编码器-解码器架构的解码器接口基类。

定义于 10.6节

forward(X, state)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

init_state(enc_all_outputs, *args)[源代码]
class d2l.torch.DotProductAttention(dropout)[源代码]

基类:Module

缩放点积注意力。

定义于 11.3.2.2节

forward(queries, keys, values, valid_lens=None)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.Encoder[源代码]

基类:Module

编码器-解码器架构的编码器接口基类。

定义于 10.6节

forward(X, *args)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.EncoderDecoder(encoder, decoder)[源代码]

基类:Classifier

编码器-解码器架构的基类。

定义于 10.6节

forward(enc_X, dec_X, *args)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

predict_step(batch, device, num_steps, save_attention_weights=False)[源代码]

定义于 10.7.6节

class d2l.torch.FashionMNIST(batch_size=64, resize=(28, 28))[源代码]

基类:DataModule

Fashion-MNIST 数据集。

定义于 4.2节

get_dataloader(train)[源代码]

定义于 4.2节

text_labels(indices)[源代码]

返回文本标签。

定义于 4.2节

visualize(batch, nrows=1, ncols=8, labels=[])[源代码]

定义于 4.2节

class d2l.torch.GRU(num_inputs, num_hiddens, num_layers, dropout=0)[源代码]

基类:RNN

多层 GRU 模型。

定义于 10.3节

class d2l.torch.HyperParameters[源代码]

基类:object

超参数的基类。

save_hyperparameters(ignore=[])[源代码]

将函数参数保存为类属性。

定义于 23.7节

class d2l.torch.LeNet(lr=0.1, num_classes=10)[源代码]

基类:Classifier

LeNet-5 模型。

定义于 7.6节

class d2l.torch.LinearRegression(lr)[源代码]

基类:Module

用高级 API 实现的线性回归模型。

定义于 3.5节

configure_optimizers()[源代码]

定义于 3.5节

forward(X)[源代码]

定义于 3.5节

get_w_b()[源代码]

定义于 3.5节

loss(y_hat, y)[源代码]

定义于 3.5节

class d2l.torch.LinearRegressionScratch(num_inputs, lr, sigma=0.01)[源代码]

基类:Module

从零开始实现的线性回归模型。

定义于 3.4节

configure_optimizers()[源代码]

定义于 3.4节

forward(X)[源代码]

定义于 3.4节

loss(y_hat, y)[源代码]

定义于 3.4节

class d2l.torch.Module(plot_train_per_epoch=2, plot_valid_per_epoch=1)[源代码]

基类:Module, HyperParameters

模型的基类。

定义于 3.2节

apply_init(inputs, init=None)[源代码]

定义于 6.4节

configure_optimizers()[源代码]

定义于 4.3节

forward(X)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

loss(y_hat, y)[源代码]
plot(key, value, train)[源代码]

在动画中绘制一个点。

training_step(batch)[源代码]
validation_step(batch)[源代码]
class d2l.torch.MTFraEng(batch_size, num_steps=9, num_train=512, num_val=128)[源代码]

基类:DataModule

英法数据集。

定义于 10.5节

build(src_sentences, tgt_sentences)[源代码]

定义于 10.5.3节

get_dataloader(train)[源代码]

定义于 10.5.3节

class d2l.torch.MultiHeadAttention(num_hiddens, num_heads, dropout, bias=False, **kwargs)[源代码]

基类:Module

多头注意力。

定义于 11.5节

forward(queries, keys, values, valid_lens)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

transpose_output(X)[源代码]

逆转 transpose_qkv 的操作。

定义于 11.5节

transpose_qkv(X)[源代码]

为多个注意力头的并行计算进行转置。

定义于 11.5节

class d2l.torch.PositionalEncoding(num_hiddens, dropout, max_len=1000)[源代码]

基类:Module

位置编码。

定义于 11.6节

forward(X)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.PositionWiseFFN(ffn_num_hiddens, ffn_num_outputs)[源代码]

基类:Module

基于位置的前馈网络。

定义于 11.7节

forward(X)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.ProgressBoard(xlabel=None, ylabel=None, xlim=None, ylim=None, xscale='linear', yscale='linear', ls=['-', '--', '-.', ':'], colors=['C0', 'C1', 'C2', 'C3'], fig=None, axes=None, figsize=(3.5, 2.5), display=True)[源代码]

基类:HyperParameters

在动画中绘制数据点的绘图板。

定义于 3.2节

draw(x, y, label, every_n=1)[源代码]

定义于 23.7节

class d2l.torch.Residual(num_channels, use_1x1conv=False, strides=1)[源代码]

基类:Module

ResNet 模型的残差块。

定义于 8.6节

forward(X)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.ResNeXtBlock(num_channels, groups, bot_mul, use_1x1conv=False, strides=1)[源代码]

基类:Module

ResNeXt 块。

定义于 8.6.2节

forward(X)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.RNN(num_inputs, num_hiddens)[源代码]

基类:Module

用高级 API 实现的 RNN 模型。

定义于 9.6节

forward(inputs, H=None)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.RNNLM(rnn, vocab_size, lr=0.01)[源代码]

基类:RNNLMScratch

用高级 API 实现的基于 RNN 的语言模型。

定义于 9.6节

init_params()[源代码]
output_layer(hiddens)[源代码]

定义于 9.5节

class d2l.torch.RNNLMScratch(rnn, vocab_size, lr=0.01)[源代码]

基类:Classifier

从零开始实现的基于 RNN 的语言模型。

定义于 9.5节

forward(X, state=None)[源代码]

定义于 9.5节

init_params()[源代码]
one_hot(X)[源代码]

定义于 9.5节

output_layer(rnn_outputs)[源代码]

定义于 9.5节

predict(prefix, num_preds, vocab, device=None)[源代码]

定义于 9.5节

training_step(batch)[源代码]
validation_step(batch)[源代码]
class d2l.torch.RNNScratch(num_inputs, num_hiddens, sigma=0.01)[源代码]

基类:Module

从零开始实现的 RNN 模型。

定义于 9.5节

forward(inputs, state=None)[源代码]

定义于 9.5节

class d2l.torch.Seq2Seq(encoder, decoder, tgt_pad, lr)[源代码]

基类:EncoderDecoder

用于序列到序列学习的 RNN 编码器-解码器。

定义于 10.7.3节

configure_optimizers()[源代码]

定义于 4.3节

validation_step(batch)[源代码]
class d2l.torch.Seq2SeqEncoder(vocab_size, embed_size, num_hiddens, num_layers, dropout=0)[源代码]

基类:Encoder

用于序列到序列学习的 RNN 编码器。

定义于 10.7节

forward(X, *args)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.SGD(params, lr)[源代码]

基类:HyperParameters

小批量随机梯度下降。

定义于 3.4节

step()[源代码]
zero_grad()[源代码]
class d2l.torch.SoftmaxRegression(num_outputs, lr)[源代码]

基类:Classifier

softmax 回归模型。

定义于 4.5节

forward(X)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.SyntheticRegressionData(w, b, noise=0.01, num_train=1000, num_val=1000, batch_size=32)[源代码]

基类:DataModule

用于线性回归的合成数据。

定义于 3.3节

get_dataloader(train)[源代码]

定义于 3.3节

class d2l.torch.TimeMachine(batch_size, num_steps, num_train=10000, num_val=5000)[源代码]

基类:DataModule

时间机器数据集。

定义于 9.2节

build(raw_text, vocab=None)[源代码]

定义于 9.2节

get_dataloader(train)[源代码]

定义于 9.3.3节

class d2l.torch.Trainer(max_epochs, num_gpus=0, gradient_clip_val=0)[源代码]

基类:HyperParameters

用数据训练模型的基类。

定义于 3.2.2节

clip_gradients(grad_clip_val, model)[源代码]

定义于 9.5节

fit(model, data)[源代码]
fit_epoch()[源代码]

定义于 3.4节

prepare_batch(batch)[源代码]

定义于 6.7节

prepare_data(data)[源代码]
prepare_model(model)[源代码]

定义于 6.7节

class d2l.torch.TransformerEncoder(vocab_size, num_hiddens, ffn_num_hiddens, num_heads, num_blks, dropout, use_bias=False)[源代码]

基类:Encoder

Transformer 编码器。

定义于 11.7.4节

forward(X, valid_lens)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.TransformerEncoderBlock(num_hiddens, ffn_num_hiddens, num_heads, dropout, use_bias=False)[源代码]

基类:Module

Transformer 编码器块。

定义于 11.7.2节

forward(X, valid_lens)[源代码]

定义每次调用时执行的计算。

应由所有子类重写。

注意

尽管前向传播的配方需要在此函数内定义,但之后应调用 Module 实例而不是此函数,因为前者会负责运行已注册的钩子,而后者会静默地忽略它们。

class d2l.torch.Vocab(tokens=[], min_freq=0, reserved_tokens=[])[源代码]

基类:object

文本词汇表。

to_tokens(indices)[源代码]
property unk

23.8.2. 函数

d2l.torch.add_to_class(Class)[源代码]

将函数注册为所创建类中的方法。

定义于 3.2节

d2l.torch.bleu(pred_seq, label_seq, k)[源代码]

计算 BLEU。

定义于 10.7.6节

d2l.torch.check_len(a, n)[源代码]

检查列表的长度。

定义于 9.5节

d2l.torch.check_shape(a, shape)[源代码]

检查张量的形状。

定义于 9.5节

d2l.torch.corr2d(X, K)[源代码]

计算二维互相关。

定义在 第 7.2 节

d2l.torch.cpu()[源代码]

获取CPU设备。

定义于 6.7节

d2l.torch.gpu(i=0)[源代码]

获取一个GPU设备。

定义于 6.7节

d2l.torch.init_cnn(module)[源代码]

为CNN初始化权重。

定义于 7.6节

d2l.torch.init_seq2seq(module)[源代码]

为序列到序列学习初始化权重。

定义于 10.7节

d2l.torch.masked_softmax(X, valid_lens)[源代码]

通过在最后一个轴上遮蔽元素来执行softmax操作。

定义在 第 11.3 节

d2l.torch.num_gpus()[源代码]

获取可用GPU的数量。

定义于 6.7节

d2l.torch.plot(X, Y=None, xlabel=None, ylabel=None, legend=[], xlim=None, ylim=None, xscale='linear', yscale='linear', fmts=('-', 'm--', 'g-.', 'r:'), figsize=(3.5, 2.5), axes=None)[源代码]

绘制数据点。

定义在 第 2.4 节

d2l.torch.set_axes(axes, xlabel, ylabel, xlim, ylim, xscale, yscale, legend)[源代码]

为matplotlib设置坐标轴。

定义在 第 2.4 节

d2l.torch.set_figsize(figsize=(3.5, 2.5))[源代码]

为matplotlib设置图像大小。

定义在 第 2.4 节

d2l.torch.show_heatmaps(matrices, xlabel, ylabel, titles=None, figsize=(2.5, 2.5), cmap='Reds')[源代码]

显示矩阵的热图。

定义在 第 11.1 节

d2l.torch.show_list_len_pair_hist(legend, xlabel, ylabel, xlist, ylist)[源代码]

绘制列表长度对的直方图。

定义于 10.5节

d2l.torch.try_all_gpus()[源代码]

返回所有可用的GPU,如果没有GPU则返回[cpu(),]。

定义于 6.7节

d2l.torch.try_gpu(i=0)[源代码]

如果存在,则返回gpu(i),否则返回cpu()。

定义于 6.7节

d2l.torch.use_svg_display()[源代码]

在Jupyter中使用svg格式显示绘图。

定义在 第 2.4 节