Glue

xxl-job安装部署整理

血红的双手。 提交于 2020-07-28 08:47:10
xxl-job github源码地址:https://github.com/xuxueli/xxl-job xxl-job 官方文档:https://www.xuxueli.com/xxl-job/# 系统组成 调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块; 支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。 执行模块(执行器): 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; 接收“调度中心”的执行请求、终止请求和日志请求等。 架构图 xxl-job 环境搭建步骤: 1、初始化“调度数据库” "调度数据库初始化SQL脚本" 位置为:/xxl-job/doc/db/tables_xxl_job.sql 调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例,如果mysql做主从,调度中心集群节点务必强制走主库。 2、编译源码按照maven格式将源码导入IDE, 使用maven进行编译即可(这里需要注意admin和core版本最好是要一致,不然会出现调度中心调不到job笔者亲自躺坑

GridBagLayout with glue : no fixed row height

旧巷老猫 提交于 2020-05-17 07:42:53
问题 I would like to create a panel, to which I can dynamically add sub-panels with fixed height. I tried using a glue component, but it does not work. I would like to achieve that the sub-panels are visible at the top of the gridbaglayout. Side problem is that when I keep adding sub-panels, they start to overlap because the JScrollPane isn't adjusting. However, when I resize the frame, both problems are solved. At this moment I don't see where I went wrong. Why does the glue component not take up

ERNIE加持,飞桨图神经网络PGL全新升级

做~自己de王妃 提交于 2020-05-06 19:58:59
在2019年深度学习开发者秋季峰会上,百度对外发布飞桨图学习框架PGL v1.0正式版,历经5个月的版本迭代,PGL再度升级,发布v1.1版本,带来了最新的算法突破、全面的工业级图学习框架能力以及工业级的实践案例。下面我们逐一揭秘升级点。 最新算法突破:结合语义与结构信息的图神经网络模型ERNIESage 在很多工业应用中,往往出现如下图所示的一种特殊的图:Text Graph。顾名思义,图的节点属性由文本构成,而边的构建提供了结构信息。如搜索场景下的Text Graph,节点可由搜索词、网页标题、网页正文来表达,用户反馈和超链信息则可构成边关系。 ​ PGL团队提出ERNIESage模型同时建模文本语义与图结构信息,有效提升Text Graph的应用效果。其中ERNIE是百度推出的基于知识增强的持续学习语义理解框架,在中英文16个任务上超越业内同类最优模型,以历史上首次超越90大关的成绩登顶自然语言处理领域最权威的 GLUE评测榜单 ,并在最近SemEval 2020上斩获5项世界冠军。 ERNIESage是ERNIE与GraphSAGE碰撞的结果,是ERNIE SAmple aggreGatE的简称,它的结构如下图所示,主要思想是通过ERNIE作为聚合函数(Aggregators),建模自身节点和邻居节点的语义与结构关系。 ERNIESage对于文本的建模是构建在邻居聚合的阶段

ASP.NET Core 依赖注入(DI)

二次信任 提交于 2020-05-01 18:22:29
  ASP.NET Core的底层设计支持和使用依赖注入。ASP.NET Core 应用程序可以利用内置的框架服务将服务注入到启动类的方法中,并且应用程序服务也可以配置注入。由ASP.NET Core 提供的默认服务容器提供了最小功能集,并不是取代其他容器。    1.浅谈依赖注入   依赖注入(Dependency injection,DI)是一种实现对象和依赖者之间松耦合的技术,将类用来执行其操作的这些对象以注入的方式提供给该类,而不是直接实例化依赖项或者使用静态引用。一般情况,类会通过构造函数声明器2依赖关系,允许他们遵循显示依赖原则。这种方法称为“构造函数注入”。   当类的设计使用DI思想时,他们的耦合更加松散,因为他们没有对他们的合作者直接硬编码的依赖。这遵循“依赖倒置原则”,其中指出,高层模块不应该依赖于底层模块:两者都依赖于抽象。   类要求在他们构造时向其提供抽象(通常是接口),而不是引用特定的实现。提取接口的依赖关系和提供接口的实现作为参数也是“策略设计模式”的一个示例。   当一个类被用来创建类及其相关的依赖关系时,这个成为容器(containers),或者称为控制反转(Inversion of Control, IoC)容器,或者依赖注入容器。容器本质上是一个工厂,负责提供向它请求的类型的实例。如果一个给定类型声明它具有依赖关系

详解百度ERNIE进化史及典型应用场景

余生长醉 提交于 2020-04-30 20:05:39
上个月,全球规模最大的语义评测比赛 SemEval 2020 结果出炉,百度基于飞桨平台自研的语义理解框架 ERNIE 一举斩获 5 项世界冠军,囊括视觉媒体的关键文本片段挖掘、多语攻击性语言检测和混合语种的情感分析。去年,ERNIE先后完成两版重大升级:ERNIE 1.0 提出知识增强的语义表示模型, ERNIE 2.0 则构建了持续学习语义理解框架,在中英文 16 个任务上超越业界最好模型。本文将为开发者详细解读ERNIE的进化史。 ERNIE 1.0 ERNIE: Enhanced Representation through Knowledge Integration[1] 是百度在2019年4月的时候,基于BERT模型,做的进一步优化,在中文的NLP任务上得到了state-of-the-art的结果。 它主要是在mask的机制上做了改进,它的mask不是基本的word piece的mask,而是在pretrainning阶段增加了外部的知识,由三种level的mask组成,分别是basic-level masking(word piece)+ phrase level masking(WWM style) + entity level masking。在这个基础上,借助百度在中文社区的强大能力,中文的ERNIE还使用了各种异质(Heterogeneous)的数据集

12倍端到端加速,陈天奇创业公司OctoML提出克服二值网络瓶颈新方法

主宰稳场 提交于 2020-04-27 10:30:37
去年,TVM 开发团队陈天奇等人创建了 OctoML 公司 ,旨在「让机器学习可以部署在所有硬件上」。前段时间,该公司推出了第一个软件即服务产品 Octimizer ,可以帮助开发者更方便、快捷地将 ML 模型部署到设备上。近日,该公司官方博客又介绍了一种快速端到端二值神经网络——Riptide,使用 TVM 进行优化时可以实现最高 12 倍的端到端加速。该公司机器学习系统工程师 Josh Fromm 在博客中介绍了 Riptide 的细节。 选自medium,作者:Josh Fromm,机器之心编译,机器之心编辑部。 Riptide 是一种新的模型量化方法,可以将模型量化至 1、2 位。研究团队今年三月在 MLSys 上介绍了 Riptide,这篇文章主要讲一下为什么要构建 Riptide,并快速了解它的幕后工作原理。团队计划来年将 Automatic ultra low-bit 功能添加到 Octomizer 中。在此之前,读者可以使用开源 Riptide 项目和 MLSys 论文中的信息来进行模型优化。 论文链接: https:// proceedings.mlsys.org/s tatic/paper_files/mlsys/2020/155-Paper.pdf GitHub 项目: https:// github.com/jwfromm/Ript ide 、 动机及背景

Linux内核device结构体分析

主宰稳场 提交于 2020-04-24 21:14:27
1、前言 Linux内核中的设备驱动模型,是建立在sysfs设备文件系统和kobject上的,由总线(bus)、设备(device)、驱动(driver)和类(class)所组成的关系结构,在底层,Linux系统中的每个设备都有一个device结构体的实例,本文将对Linux内核的device结构体以及相关结构进行简要分析。 2、device结构体 在Linux内核源码中,struct device结构体的定义在include/linux/device.h中,实现的主要方法在drivers/base/core.c文件中,device结构体的定义如下所示: struct device { struct device * parent; struct device_private * p; struct kobject kobj; const char *init_name; /* initial name of the device */ const struct device_type * type; struct mutex mutex; /* mutex to synchronize calls to * its driver. */ struct bus_type *bus; /* type of bus device is on */ struct device

覆盖40种语言:谷歌发布多语言、多任务NLP新基准XTREME

烈酒焚心 提交于 2020-04-15 12:53:02
【推荐阅读】微服务还能火多久?>>> 自然语言权威数据集 GLUE 一直是衡量各机构 NLP 预训练技术水平最重要的指标之一。近年来在其榜单之上实现更好的成绩,也成为了科技公司技术提升的体现。不过现有的大多数 NLP 基准仅限于英文任务,无法评价 NLP 模型在其他语言上的能力。 机器之心报道,参与:泽南、蛋酱、杜伟。 近日,来自 CMU、谷歌研究院和 DeepMind 的科学家们提出了覆盖四十种语言的大规模多语言多任务基准 XTREME,希望一举解决这个问题。 自然语言处理(NLP)所面临的其中一个关键性挑战是,构建的系统不仅要在英文中 work,而且要在世界范围内约 6900 种语言中也 work。幸运的是,虽然大多数语言呈现数据稀疏(data sparse)且没有充足可用的数据来自行训练鲁棒的模型,但其中的很多语言共享大量的底层结构。 此外,NLP 领域有很多方法在训练过程中利用到了多语言的共享结构,以克服数据稀疏的问题。但不足的是,大多数这些方法侧重于在多语言中执行特定任务。近几年,得益于深度学习的进展,有更多的方法试图学习通用的多语言表示(如 mBERT、XLM 和 XLM-R),这些方法旨在捕获跨语言间共享且对多任务有用的知识。但在实践中,这类方法的评估却大多侧重于一小部分任务以及相似的语言。 因此,为了鼓励人们在多语言学习领域开展更多研究,谷歌研究院联合 CMU

How To Read Source Code

不问归期 提交于 2020-03-24 01:53:54
3 月,跳不动了?>>> 原题目: How To Read Source Code ,原作者:Aria Stewart 中文翻译: 在博客中查看 这篇文章基于我在Oneshot Nodeconf Christchurch的一个演讲。 我本来没有想要写这篇文章。程序员不读源代码听起来似乎是很荒谬的。然后我真遇到了一群不读源代码的程序员。接着我又跟更多的人进行了交谈,发现他们除了读代码示例或测试脚本之外什么也不看。最重要的是,我遇到过很多新手程序员,对他们来说,找到从哪个地方开始阅读是非常困难的。 当我们说读源代码的时候,我们要表达什么意思? 我们是为了什么去读源代码?为了理解它。为了找bug,为了知道这些代码和系统中的其他软件是怎样交互的。我们还会为了回顾、品评而去读。为了找出其中的接口信息,为了理解和找到不同模块之间的界线,为了学习,我们都会去读源代码。 读代码不是一个线性过程 读代码的过程不是线性的。人们往往认为读源代码就像读一本书一样:先搞定简介或者README,然后从第一章开始一章一章的读,直到结束。其实并不是这样的。我们甚至都不能确定一个程序有没有结束,很多程序是不会终止的。我们应该在章节、模块之间跳转,反复阅读。我们也可以选择通读单个模块,但是这样我们就无法理解这个模块所引用的其他模块的代码。我们也可以根据程序的执行顺序去阅读,但是我们最后并不会清楚程序会向哪里执行。

如何在Python中从字符串中提取数字?

不羁的心 提交于 2020-02-27 14:23:58
我将提取字符串中包含的所有数字。 哪个更适合于目的,正则表达式或 isdigit() 方法? 例: line = "hello 12 hi 89" 结果: [12, 89] #1楼 @jmnas,我很喜欢您的回答,但没有找到浮点数。 我正在处理一个脚本,以分析要送入CNC铣床的代码,并且需要查找可以是整数或浮点数的X和Y尺寸,因此我将代码修改为以下内容。 查找具有正值和负值的int,float。 仍然找不到十六进制格式的值,但是您可以在 num_char 元组中添加“ x”和“ A”至“ F”,我认为它将解析“ 0x23AC”之类的内容。 s = 'hello X42 I\'m a Y-32.35 string Z30' xy = ("X", "Y") num_char = (".", "+", "-") l = [] tokens = s.split() for token in tokens: if token.startswith(xy): num = "" for char in token: # print(char) if char.isdigit() or (char in num_char): num = num + char try: l.append(float(num)) except ValueError: pass print(l) #2楼 这有点迟了