reduce

How to filtering array of objects to another array of objects in js?

爱⌒轻易说出口 提交于 2020-04-28 22:49:51
问题 I have got two arrays of objects. I want to filter data based on permissionObj. This is coming from database. Here are arrays of sub-arrays in the permissionObj. I need to do another condition in reduce function . For example , if Pubsidebar value is token is public, I want to keep static content {label: "test",value: "public"} without filtering with permissionObj and if other key and value is match with permissionObj,then it will be push inside token . let permissionObj = [ { 'OA deal': [ {

How to filtering array of objects to another array of objects in js?

非 Y 不嫁゛ 提交于 2020-04-28 22:43:35
问题 I have got two arrays of objects. I want to filter data based on permissionObj. This is coming from database. Here are arrays of sub-arrays in the permissionObj. I need to do another condition in reduce function . For example , if Pubsidebar value is token is public, I want to keep static content {label: "test",value: "public"} without filtering with permissionObj and if other key and value is match with permissionObj,then it will be push inside token . let permissionObj = [ { 'OA deal': [ {

fork/join框架引发的思考

走远了吗. 提交于 2020-04-14 23:46:01
【推荐阅读】微服务还能火多久?>>> fork/join框架小demo /** * @Description:jork/join框架demo * @Author :YanDepeng * @Date :Created in 2020/4/14 17:07 * @Version : */ public class MyCountTask extends RecursiveTask { // 阈值 private static final int THRESHOLD = 2; private int start; private int end; public MyCountTask(){} public MyCountTask(int start, int end) { this.start = start; this.end = end; } @Override protected Integer compute() { int sum = 0; // 若任务足够小就执行任务,不在分割 int result; boolean canCompute = (end - start) <= THRESHOLD; if(canCompute) { sum += sum(start, end); } else { // 如果任务大于阈值,就分割未两个任务计算 int middle =

Hive 面试题整理

醉酒当歌 提交于 2020-04-12 00:53:26
1. Hive数据倾斜 原因 key分布不均匀 业务数据本身的特性 SQL语句造成数据倾斜 解决方法 hive设置hive.map.aggr=true和hive.groupby.skewindata=true 有数据倾斜的时候进行负载均衡,当选项设定为true,生成的查询计划会有两个MR Job。第一个MR Job中,Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同Group By Key有可能被分发到不同的Reduce中,从而达到负载均衡的目的;第二个MR Job在根据预处理的数据结果按照 Group By Key 分布到Reduce中(这个过程可以保证相同的 Group By Key 被分布到同一个Reduce中),最后完成最终的聚合操作。 SQL语句调整: 选用join key 分布最均匀的表作为驱动表。做好列裁剪和filter操作,以达到两表join的时候,数据量相对变小的效果。 大小表Join: 使用map join让小的维度表(1000条以下的记录条数)先进内存。在Map端完成Reduce。 大表Join大表:把空值的Key变成一个字符串加上一个随机数,把倾斜的数据分到不同的reduce上,由于null值关联不上,处理后并不影响最终的结果。 count distinct大量相同特殊值:count

python内置函数map/reduce/filter

本秂侑毒 提交于 2020-04-07 11:35:23
python有几个内置的函数很有意 思:map/filter/reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并。 是python列表方法的三架马车。 filter() 函数: filter 函数的功能相当于过滤器。调用一个布尔函数bool_func来迭代遍历每个seq中的元素;返回一个使bool_seq返回值为true的元素的序列。 >>>a=[1,2,3,4,5,6,7] >>>b=filter(lambda x:x>5, a) >>>print b >>>[6,7] 如果filter参数值为None,就使用identity()函数,list参数中所有为假的元 素都将被删除。如下所示: >>>a=[0,1,2,3,4,5,6,7] >>>b=filter(None, a) >>>print b >>>[1,2,3,4,5,6,7] map() 函数: map函数func作用于给定序列的每个元素,并用一个列表来提供返回值。 >>>map(lambda x:x+3, a) #这里的a同上 >>>[3,4,5,6,7,8,9,10] #另一个例子 >>>a=[1,2,3] >>>b=[4,5,6] >>>map(lambda x,y:x+y, a,b) >>>[5,7,9] reduce() 函数: reduce函数

PyTorch 分布式训练教程

柔情痞子 提交于 2020-03-27 18:47:16
3 月,跳不动了?>>> 感谢参考原文- http://bjbsair.com/2020-03-27/tech-info/7154/ 神经网络训练加速的最简单方法是使用GPU,对弈神经网络中常规操作(矩阵乘法和加法)GPU运算速度要倍超于CPU。随着模型或数据集越来越大,一个GPU很快就会变得不足。例如,BERT和GPT-2等大型语言模型是在数百个GPU上训练的。对于多GPU训练,需要一种在不同GPU之间对模型和数据进行切分和调度的方法。 PyTorch是非常流行的深度学习框架,它在主流框架中对于灵活性和易用性的平衡最好。Pytorch有两种方法可以在多个GPU上切分模型和数据:nn.DataParallel和nn.distributedataparallel。DataParallel更易于使用(只需简单包装单GPU模型)。然而,由于它使用一个进程来计算模型权重,然后在每个批处理期间将分发到每个GPU,因此通信很快成为一个瓶颈,GPU利用率通常很低。而且,nn.DataParallel要求所有的GPU都在同一个节点上(不支持分布式),而且不能使用Apex进行混合精度训练。nn.DataParallel和nn.distributedataparallel的主要差异可以总结为以下几点(译者注): DistributedDataParallel支持模型并行

step by step带你HAN文本分类

一笑奈何 提交于 2020-03-26 08:32:57
3 月,跳不动了?>>> 本文参考原文- http://bjbsair.com/2020-03-25/tech-info/6302/ 今天来看看网红Attention的效果,来自ACL的论文Hierarchical Attention Networks for Document Classification **论文概述 ** 近年来,在NLP领域,好像最流行的就是RNN、LSTM、GRU、Attention等及其变体的组合框架。这篇论文里作者就对文本的结构进行分析,使用了双向GRU的结构,并且对Attention进行调整:考虑了word层面的attention和sentence层面的attention,分别对单词在句子中和句子在文档中的重要性进行了建模。仔细一想确实是挺合理的,一篇文档就是由无数句子构成的,而一个句子又是由无数单词构成的,充分考虑了文档的内部结构。 上图就是论文中文本分类模型的整体框架,可以看出主要分为四个部分: word encoder (BiGRU layer) word attention (Attention layer) sentence encoder (BiGRU layer) sentence attention (Attention layer) 首先回顾一下GRU的原理: GRU是RNN的一个变种,使用门机制来记录当前序列的状态

7.函数进阶

北城余情 提交于 2020-03-25 19:29:39
3 月,跳不动了?>>> 高阶函数 什么叫高阶函数 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 举例 变量指向函数 f=abs abs(-10) f(-10) 传入函数作为另一函数的参数 def add(x,y,f): return f(x)+f(y) 内置高阶函数 1)lambda函数 定义:匿名函数,当需要一个函数,但是不需要这个函数的名字的时候,则可以通过lambda表达式来实现 通过lambda表达式,减少程序中的函数名字和代码量,实现更简洁的代码 语法 lambda 参数:表达式 lambda x, y: x + y 例 lambda x, y: x + y 等价于 >>> def sum(x, y): ... return x + y ... >>> sum(1,2) 3 >>> a = lambda x, y: x + y >>> a(1, 2) 3 2)map函数 定义:map函数接收两个参数,第一个是函数,第二个是列表(可迭代对象) 将函数作用在序列的每个元素上, 然后创建由每次函数应用组成的返回值列表 map函数能够用列表解析表达式来实现 语法 map( 函数,列表) 举例 >>> map((lambda x: x*x), [1,2,3]) >>> def f(x): ... return x *

Python中下划线的5种含义

扶醉桌前 提交于 2020-03-25 18:40:43
3 月,跳不动了?>>> Python中下划线的5种含义 转载sigma_Tian 最后发布于2018-04-27 11:34:48 阅读数 35556 收藏 展开 作者:地球的外星人君 链接: https://zhuanlan.zhihu.com/p/36173202 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 分享一篇文章:The Meaning of Underscores in Python。 本文介绍了Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(name mangling)的工作原理,以及它如何影响你自己的Python类。 单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。 如果你想知道“Python变量和方法名称中单下划线和双下划线的含义是什么?”,我会尽我所能在这里为你解答。 在本文中,我将讨论以下五种下划线模式和命名约定,以及它们如何影响Python程序的行为: 单前导下划线: var 单末尾下划线:var 双前导下划线:_ var 双前导和末尾下划线: var 单下划线: 在文章结尾处,你可以找到一个简短的“速查表”,总结了五种不同的下划线命名约定及其含义

基于TPNN的儿童英语声学模型训练

本秂侑毒 提交于 2020-03-19 16:46:42
3 月,跳不动了?>>> 前言 TPNN作为学而思网校自主研发的深度学习平台,专门针对声学模型训练进行了架构优化,可以轻松帮助研发人员完成语音特征和解码器的无缝对接,同时在此框架下,我们也实现了主流的声学模型架构和高效的多卡训练技术,在TPNN的框架下,我们进行了大规模数据下儿童声学模型的技术研发。 通过大量实验,包括模型结构,特征维度,建模单元等,结合n-gram语言模型,融入了上万小时的儿童英语数据,最终实现了最适合中国儿童的英语识别的声学模型架构,我们的儿童声学模型可以达到92%以上的识别精度,拥有领先业界的性能。 同时考虑到业务的需要,我们也实现了儿童声学模型的离线识别方案,利用8bit量化,neon优化,混合精度运算等技术,我们可以在损失少量的性能的情况下,在移动端达到接近服务器的计算速度。 本文将从TPNN的“多卡训练技术” “声学模型训练” “移动端的模型优化”这几个方面为大家介绍学而思网校的儿童声学模型训练技术。 一、TPNN的多卡加速技术 基于深度学习的的声学模型在语音识别领域取得了巨大的成功,但这些模型的训练都必须建立在海量的数据训练上,面对海量的训练数据,模型的训练时间大大增加,识别会严重拖慢研究和开发进度。 因此高效的多卡训练方案对于一个深度学习框架是一个非常重要的环节。 TPNN拥有在NVidia的NCCL通信框架基础上,利用BMUF技术