[源码解析] 分布式训练Megatron (1) --- 论文 & 基础 目录 [源码解析] 分布式训练Megatron (1) --- 论文 & 基础 0x00 摘要 0x01 Introduction 1.1 问题 1.2 数据并行 1.3 模型并行 1.3.1 通信 1.3.2 张量并行 1.3.3 流水线并行 1.4 技术组合 1.5 指导原则 0x02 张量模型并行(Tensor Model Parallelism) 2.1 原理 2.1.1 行并行(Row Parallelis…
目录预训练源码结构简介输入输出源码解析参数主函数创建训练实例下一句预测&实例生成随机遮蔽输出结果一览预训练源码结构简介关于BERT,简单来说,它是一个基于Transformer架构,结合遮蔽词预测和上下句识别的预训练NLP模型.至于效果:在11种不同NLP测试中创出最佳成绩关于介绍BERT的文章我看了一些,个人感觉介绍的最全面的是机器之心再放上谷歌官方源码链接:BERT官方源码在看本博客之前,读者先要了解:1.Transformer架构2.BERT模型的创新之处3.python语言及tensor…
目录前言源码解析主函数自定义模型遮蔽词预测下一句预测规范化数据集前言本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BERT针对两个任务同时训练.1.下一句预测.2.遮蔽词识别下面介绍BERT的预训练模型run_pretraining.py是怎么训练的. 源码解析主函数训练过程主要用了estimator调度器.这个调度器支持自定义训练过程,将训练集传入之后自动训练.详情见注释 def main(_): tf.logging.set_v…
目录前言源码解析模型配置参数BertModelword embeddingembedding_postprocessorTransformerself_attention模型应用前言BERT的模型主要是基于Transformer架构(论文:Attention is all you need).它抛开了RNN等固有模式,直接用注意力机制处理Seq2Seq问题,体现了大道至简的思想.网上对此模型解析的资料有很多,但大都千篇一律.这里推荐知乎的一篇<Attention is all you need>…
上一课主要讲了jQuery中的缓存机制Data构造方法的源码解析,这一课主要讲jQuery是如何利用Data对象实现有关缓存机制的静态方法和实例方法的.我们接下来,来看这几个静态方法和实例方法的源码解析: data_user = new Data();    //对外使用的数据缓存对象data_priv = new Data();    //内部的数据缓存对象,内部使用 jQuery.extend({      //在jQuery中添加静态方法 acceptData: Data.accepts,…
jQuery中有三种添加数据的方法,$().attr(),$().prop(),$().data().但是前面两种是用来在元素上添加属性值的,只适合少量的数据,比如:title,class,name等.对于json这种数据量大的,就适合用data方法来添加,而data方法就是jQuery缓存机制最重要的方法. jQuery中为什么要用缓存机制系统呢?因为DOM元素与js对象之间互相引用,在大部分浏览器下会引起内存泄漏.为了解决这个问题,jQuery就写了一个缓存机制系统.举个例子: var di…
上一章聊到行式存储.列式存储的基本概念,并介绍了 TsFile 是如何存储数据以及基本概念.详情请见: 时序数据库 Apache-IoTDB 源码解析之文件格式简介(三) 打一波广告,欢迎大家访问IoTDB 仓库,求一波 Star .欢迎关注头条号:列炮缓开局,欢迎关注OSCHINA博客 这一章主要想聊一聊: TsFile的文件概览 TsFile的数据块 TsFile文件概览 一个完整的 TsFile 是由图中的几大块组成,图中的数据块与索引块之间使用 1 个字节的分隔符 2 来进行分隔,这个分…
我们在第三十二节,使用谷歌Object Detection API进行目标检测.训练新的模型(使用VOC 2012数据集)那一节我们介绍了如何使用谷歌Object Detection API进行目标检测,以及如何使用谷歌提供的目标检测模型训练自己的数据.在训练自己的数据集时,主要包括以下几步: 制作自己的数据集,注意这里数据集在进行标注时,需要按照一定的格式.然后调object_detection\dataset_tools下对应的脚本生成tfrecord文件.如下图,如果我们想调用create…
引言 之前一段时间在参与语义分割的项目,最近有时间了,正好把这段时间的所学总结一下. 在代码上,语义分割的框架会比目标检测简单很多,但其中也涉及了很多细节.在这篇文章中,我以PSPNet为例,解读一下语义分割框架的代码.搞清楚一个框架后,再看别人的框架都是大同小异. 工程来自https://github.com/speedinghzl/pytorch-segmentation-toolbox 框架中一个非常重要的部分是evaluate.py,即测试阶段.但由于篇幅较长,我将另开一篇来阐述测试过程…
/* Nond-domination based selection routines */ # include <stdio.h> # include <stdlib.h> # include <math.h> # include "global.h" # include "rand.h" /* Routine to perform non-dominated sorting */ void fill_nondominated_…