我们在做图像分类任务时,会输入想通尺寸的图像到 backbone 网络中提取图像特征,然后接一个全连接层来得到输出分数。那么,如果输入图像尺寸不同,那么输入就无法输入到后续的全连接层。我们需要对输入图像进行一些预处理工作...
时序卷积网络(Temporal Convolutional Networks)是一种简单的卷积结构。它在许多任务中,性能比循环神经网络例(例如:LSTM)要表现的更好。 因果卷积(Causal Convolutions)...
Conv2D 主要用在图像特征提取,而对于文本数据我们一般用 Conv1D。怎么去理解 1D 和 2D? 首先,我们可以把 Conv2D 中的 channel 理解为 Conv1D 中的 length。 Conv2D 输...
PaddleNLP 中封装了一些 Encoder,可以帮助我们 sequence 中的多 token 向量转换为 sequence vector,主要方法有: BoWEncoder CNNEncoder GRUEncod...
PaddleNLP 提供多个开源的预训练词向量模型,使用非常便捷。接下来结合官方给出的详细文档总结下主要的内容。 https://paddlenlp.readthedocs.io/zh/latest/model_zoo/...
我们通常用模型包含的参数量和计算量来衡量一个模型的复杂度。参数量指的是模型学习参数数量,它决定了模型的大小,以及内存资源的占用,当然,在训练过程中,模型的实际内存使用量并不仅仅由参数量来决定 模型的计算量指的是浮点数运算...
Tansformer-based 的模型都是基于自注意力机制,我们知道自注意力机制擅长捕捉输入 Token 内部相关性,并以此能够建立对 Token 的表征。但是自注意力机制随着输入序列长度的增加,所需的计算量也变得很大...
创建 autograd.Function 的子类,需要实现两个静态的方法 forward 和 backward。应用该 op 时,调用 apply 方法,不要直接调用 forward 方法。 forward 静态方法中第...
叶子张量是 PyTorch 计算图中的一个重要概念,叶子张量指的就是我们的模型参数,而模型参数一般都是我们自己创建的 requires_grad=True 的张量。它位于整个计算图的开始位置,比如下面这个例子: 程序输出...
我们一直使用 PyTorch 进行模型训练,有时会出现显存不足的情况。除了找到对应的解决办法,比如:累加梯度、使用自动混合精度,还应该了解训练时,显存究竟在哪些环节被大量占用。主要有以下四个环节: CUDA 运行内存 模...
Gradient Checkpoint 是一种能够节省内存的技术。什么时候需要节省内存呢?比如:模型太大,无法放到西有限的显存中训练。或者模型能够放到显存中,但是只能使用较小的 batch size, 我们知道有时候使用...