随着服务器的入门门槛越来越低,使用自己的服务器搭建一个梯子或者放一些自己的网站(博客)也越来越简单。下面主要总结一下使用服务器搭建梯子的方法。

Read more »

PyTorch 进行分布式训练,可以使用 nn.DataParallelnn.parallel.DistributedDataParallel 两种方式嘛,但 DistributedDataParallel 拥有天然的优势,能够保证显存分配均衡,而且支持多机多卡分布式训练。

并行处理机制

DistributedDataParallel 每个进程对应一个独立的训练过程,与其他并行进程之间只进行少量的信息交换。

  1. 各进程的模型进行初始化时执行一次 broadcast 保证各进程模型初始参数一致;
  2. 每个进程读取不同的数据进行前向传播,并计算得到 loss 和梯度;
  3. 将梯度汇总并求平均,broadcast 到其他进程;
  4. 各个进程执行完整的反向传播更新参数。

由于各个进程模型初始化相同、执行相同的梯度更新,所以各个进程的模型参数永远是相同的。

Read more »

ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。

论文链接:https://arxiv.org/abs/2001.11314
开源地址:https://github.com/PaddlePaddle/ERNIE/tree/repro/ernie-gen

Read more »

准备数据的步骤

在 Paddle 静态图中,准备数据需要三步。

Step1. 自定义 Reader 生成数据

该步骤由用户自己定义一个数据读取方法,比如从一个指定的文件夹不断的加载图片。根据返回的数据形式不同,可分为 Sample 级和 Batch 级的 Reader。

Read more »

模型的测试评价与训练的 fluid.Program 不同。在测试评价中:

  1. 测试评价不进行反向传播,不优化更新参数。

  2. 测试评价执行的操作可以不同。

    • 例如 BatchNorm 操作,在训练和测试时执行不同的算法。

    • 测试评价模型与训练模型可以是完全不同的模型。

      Read more »

题目描述

给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

Read more »