上下文

ERNIE: Enhanced Representation through Knowledge Integration(百度)论文翻译

荒凉一梦 提交于 2019-12-22 03:16:17
paper: https://arxiv.org/pdf/1904.09223.pdf code: https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE 文前总结 ERNIE相比于BERT,做出了如下改进: 1.mask策略。BERT只使用了字级别的随机masking,但是ERNIE使用了字、实体、短语三个级别的masking,旨在使模型学习到更多高级的语义。 2.中文异构数据预训练。对异构无监督数据进行预训练的语义编码器可以提高迁移学习性能。百度构建了混合语料库——中文Wikepedia,百度百科,百度新闻和百度贴吧。 3.对话语言模型。DLM任务可帮助ERNIE学习对话中的隐式关系,这也增强了模型学习语义表示的能力。 0.摘要 我们提出了一种新的语言表示模型,该模型称为ERNIE(通过知识集成的增强表示)。 受到BERT掩盖策略的启发(Devlin等人,2018), ERNIE被设计为学习通过知识掩盖策略增强的语言表示,其中包括实体级掩盖和短语级掩盖。 实体级策略可掩盖通常由多个单词组成的实体。 短语级策略掩盖了整个短语,该短语由几个词组成,作为一个概念单元。 实验结果表明,ERNIE优于其他基准方法,在五个自然语言处理任务(包括自然语言推理,语义相似性,命名实体识别,情感分析和问题解答)上取得了最新的最新成果。

JS中的执行上下文(Execution Context)和栈(stack)

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-21 20:08:25
在这篇文章中,我将深入探讨 JavaScript 中一个最基本的部分,即 Execution Context 。 在本文结束时,您应该更清楚地知道解释器是怎么工作的,为什么某些函数/变量在声明之前就可以使用以及它们的值是如何确定的。 一:什么是执行上下文? 当JavaScript代码运行的时候,确定它运行所在的环境是非常重要的。运行环境由下面三种不同的代码类型确定 全局代码(Global Code):代码首次执行时候的默认环境 函数代码(Function Code):每当执行流程进入到一个函数体内部的时候 Eval代码(Eval Code):当eval函数内部的文本执行的时候 您可以在网上找到大量关于 scope 的参考资料。为了更易于理解,我们将 execution context 简单视为运行当前代码的 environment/scope 。好了,话不多说,先让我们看个例子,其中包含了 global context 和 function/local context 代码。 在上图中,我们有1个全局上下文( Global Context ),使用紫色边框表示;有3个不同的函数上下文( Function Context )由绿色,蓝色,和橙色边框表示。注意!全局上下文有且只有一个,程序中其他任意的上下文都可以访问全局上下文。 你可以拥有任意数量的函数上下文。每一次 函数调用

EF架构~基于EF数据层的实现

帅比萌擦擦* 提交于 2019-12-21 14:12:02
回到目录 之前 写过关于实现一个完整的EF架构的文章 ,文章的阅读量也是满大的,自己很欣慰,但是,那篇文章是我2011年写的,所以,技术有些不成熟,所以今天把我的2014年写的EF底层架构公开一下,这个架构比2011年的有了很大程度的提高,主要在接口规范,查询规范上,并引入了排序功能,两步对完善了EF对数据的批量操作,可以说,这次的架构是很有看点的。 一 一个基础操作接口 /// <summary> /// 基础的数据操作规范 /// 与ORM架构无关 /// </summary> /// <typeparam name="TEntity"></typeparam> public interface IRepository<TEntity> where TEntity : class { /// <summary> /// 设定数据上下文,它一般由构架方法注入 /// </summary> /// <param name="unitOfWork"></param> void SetDbContext(IUnitOfWork unitOfWork); /// <summary> /// 添加实体并提交到数据服务器 /// </summary> /// <param name="item">Item to add to repository</param> void Insert

理解Javascript_02_执行上下文01

亡梦爱人 提交于 2019-12-21 03:43:26
执行上下文又名执行上下文环境 JS中为什么会产生这个概念呢,先来看一下下面的这段代码: 通过执行发现,第一句代码报了ReferenceError,第二句和第三句代码是undefined,由于undefined表明是已经定义了,但是没有进行赋值,却不知道a是10(第三句中)。 简单来说,浏览器在执行一段js代码执行要进行一些准备工作,包括变量声明提升,函数声明提升等,变量的赋值和函数形参的赋值要在运行到该代码时才进行,可以下图进行简单说明。 下面还有。先来个简单的。 有js开发经验的朋友应该都知道,你无论在哪个位置获取this,都是有值的。至于this的取值情况,比较复杂,后面会专门拿出一篇文章来讲解。 与第一种情况不同的是:第一种情况只是对变量进行声明(并没有赋值),而此种情况直接给this赋值。这也是“准备工作”情况要做的事情之一。 下面还有......第三种情况。 在第三种情况中,需要注意代码注释中的两个名词——“函数表达式”和“函数声明”。虽然两者都很常用,但是这两者在“准备工作”时,处理方式却不同。 看了以上代码。“函数声明”时我们看到了第二种情况的影子,而“函数表达式”时我们看到了第一种情况的影子。 没错。在“准备工作”中,对待函数表达式就像对待“ var a = 10 ”这样的变量一样,只是声明,赋值为undefined,相当于占了个坑。而对待函数声明时

javascript执行上下文环境

Deadly 提交于 2019-12-21 01:41:20
今天,想对javascript的执行上下文环境做一个深入的理解。之前一直都有这打算的,但无奈忙着忙着就忘记了。今天看了一篇博客,对执行上下文环境的理解可以说是醍醐灌顶。 一、对一段代码的理解开始 在浏览器的控制台输入以下代码段: 这个结果说明,代码在一句句执行之前,浏览器已经做了一些准备工作,所以,后面两个都没有报错。下面再看一段代码: 这个结果说明,函数声明时,把整个函数赋值了,而函数表达式和变量一样,只是申明。 我们总结一下,在“准备工作”中完成了哪些工作: 变量、函数表达式——变量声明,默认赋值为undefined; this——赋值; 函数声明——赋值; 这三种数据的准备情况我们称之为“执行上下文”或者“执行上下文环境”。 二、上面是在全局作用域下的执行上下文环境,下面再看下函数作用域下的上下文环境 以上代码展示了在函数体的语句执行之前,arguments变量和函数的参数都已经被赋值。从这里可以看出, 函数每被调用一次,都会产生一个新的执行上下文环境。 再看一段代码: 可以看出, 函数在定义的时候(不是调用的时候),就已经确定了函数体内部自由变量的作用域。 最后的总结: 全局代码的上下文环境数据内容为: 普通变量(包括函数表达式), 如: var a = 10; 声明(默认赋值为undefined) 函数声明, 如: function fn() { } 赋值 this 赋值

JavaScript执行上下文

走远了吗. 提交于 2019-12-20 00:16:03
原版: http://davidshariff.com/blog/what-is-the-execution-context-in-javascript/ 译文:https://yanhaijing.com/javascript/2014/04/29/what-is-the-execution-context-in-javascript/ 来源: CSDN 作者: 鳄鱼吃了我的房子 链接: https://blog.csdn.net/JasonAlonk/article/details/103613367

【java并发编程的艺术】第1章 并发编程的挑战

强颜欢笑 提交于 2019-12-19 11:17:23
1.1上下文切换 1.1.1什么是上下文切换? 概念:CPU 通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换 总结:cpu通过分时执行任务,在任务间切换的过程中,任务先保存到再加载就是上下文切换,所以多线程不一定比单线程要快,因为线程的创建和上下文切换的过程会消耗时间和资源 1.1.2如何减少上下文切换? 减少上下文切换的方法有无锁并发编程、CAS 算法、使用最少线程和使用协程。 无锁并发编程。多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的 ID 按照 Hash 算法取模分段,不同的线程处理不同段的数据。 CAS 算法。Java 的 Atomic 包使用 CAS 算法来更新数据,而不需要加锁。 使用最少线程。避免创建不需要的线程,比如任务很少,但是创建了很多线程来处理,这样会造成大量线程都处于等待状态。 协程:在单线程里实现多任务的调度,并在单线程里维持多个任务间的切换。 1.2死锁 这段代码会引起死锁,使线程 t1 和线程 t2 互相等待对方释放锁 public class DeadLockDemo { privat static String A = "A";

系统调用

痞子三分冷 提交于 2019-12-18 22:57:29
由前2篇文章做基础,现在可以理解系统调用了。 用户空间栈&系统空间栈 中断&异常 系统调用定义 系统调用是内核提供的一系列强大的函数。它们在内核中实现,然后通过一定的方式(X86是软中断,也即门陷入)呈现给用户,是用户程序与内核交互的接口。 注意,我们在程序中用调用read、write函数时,这些不是系统调用函数,而是glibc库包装后,进行一些处理,然后再调用系统调用。如果想在程序中直接调用 的 话,需要调用_syscall()函数。 上下文(context) 上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。 一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。 用户级上下文: 正文、数据、用户堆栈以及共享存储区; 寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP); 系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。 当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。而系统调用进行的模式 切换(mode switch)

理解作用域和作用域链

ぐ巨炮叔叔 提交于 2019-12-18 11:19:11
作用域需要引用 执行上下文 和 变量对象 的概念,我们先简单讲下。 在ECMASscript中的代码有三种类型:global, function和eval。我们的代码在执行过程中会形成执行上下文,一个执行上下文可以激活另一个上下文,就好比一个函数调用了另一个函数(或者全局的上下文调用了一个全局函数),然后一层一层调用下去。逻辑上来说,这种实现方式是栈,我们可以称之为上下文堆栈。当一段程序开始时,会先进入全局执行上下文环境[global execution context], 这个也是堆栈中最底部的元素。此全局程序会初始化生成必要的对象[objects]和函数[functions]。 在全局上下文执行的过程中,它可能会激活一些方法(已经初始化过的),然后进入他们的上下文环境并将新的元素压入堆栈。在这些初始化都结束之后,这个系统会因事件触发一些方法,然后进入一个新的上下文环境。活动的执行上下文在逻辑上组成堆栈,这些堆栈我们可以当做是一个待编译队列,它的活动或执行顺序影响着机器最终编译修改的结果是不是我们想要的结果相同。 变量对象(VO)是一个与执行上下文相关的特殊对象,它存储着在上下文中声明的·变量(var 变量声明)和·函数声明(FD)。变量对象在每次进入上下文时创建,并填入初始值,值的更新出现在代码执行阶段。 执行上下文的代码被分成两个基本的阶段来处理:1.进入执行上下文;2

JavaScript之自我总结篇

﹥>﹥吖頭↗ 提交于 2019-12-18 11:18:22
最近在看汤姆大叔的" 深入理解JavaScript系列 ",写得真的不错,对于我而言特别是12章到19章,因为大叔研究的点,就主要是从底层来研究JavaScript为什么会出现钟种特有的语言现象,所以学习了大叔的文章后,再结合《高程》,自己对JavaScript的认知也更明白了,以前好多地方是知其然而不知其所以然,你要问我JavaScript为什么会出现这些现象,我也只能说这是它语言本身的特性嘛。 以下是看了大叔Javascript系列(12到19章)的自我总结。 注:总结中掺杂了个人的观点以及理解层度,所以有什么错误的地方,还请不吝指教。 一、深入理解JavaScript系列(12)之变量对象: 在大叔这章中,大叔提到了一个概念就是 ‘变量对象(varibale object)’ 。 ‘变量对象’,是与执行上下文有关的,因为JavaScript在执行表达式时,总得知道相应的变量存储在哪吧?不然怎么获取或改变对应的变量值呢? 所以引入了一个‘变量对象’的概念。 都说了是对象嘛,就是以键值对的方式,存储到变量对象中咯。 1、 在进入执行上下文时,‘变量对象’VO : (1)会将函数的所有形参(如果我们是在函数执行上下文),以形参名和其对应的值作为变量对象的属性,如果形参没有对应的值,就是undefined咯。 (2)会将所有函数声明,以函数名和对应的函数对象作为变量对象的属性。 如果