index函数

pytorch中的gather函数

北慕城南 提交于 2019-12-19 13:17:12
b = torch.Tensor([[1,2,3],[4,5,6]]) print b index_1 = torch.LongTensor([[0,1],[2,0]]) index_2 = torch.LongTensor([[0,1,1],[0,0,0]]) print torch.gather(b, dim=1, index=index_1) print torch.gather(b, dim=0, index=index_2) 结果 1 2 3 4 5 6 [torch.FloatTensor of size 2x3] 1 2 6 4 [torch.FloatTensor of size 2x2] 1 5 6 1 2 3 [torch.FloatTensor of size 2x3] 有一点需要注意是,dim=1是横向看,dim=也是横向看 dim=0时,是纵向看,index是指横向纵向看的索引 来源: CSDN 作者: weixin_36411839 链接: https://blog.csdn.net/weixin_36411839/article/details/103609811

通过编写简易版本的虚拟DOM,来理解虚拟DOM 的原理

廉价感情. 提交于 2019-12-19 09:37:01
作者:deathmood 译者:前端小智 来源:medium 点赞再看,养成习惯 本文 GitHub https://github.com/qq449245884/xiaozhi 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 为了保证的可读性,本文采用意译而非直译。 要构建自己的虚拟DOM,需要知道两件事。你甚至不需要深入 React 的源代码或者深入任何其他虚拟DOM实现的源代码,因为它们是如此庞大和复杂——但实际上,虚拟DOM的主要部分只需不到50行代码。 有两个概念: Virtual DOM 是真实DOM的映射 当虚拟 DOM 树中的某些节点改变时,会得到一个新的虚拟树。算法对这两棵树(新树和旧树)进行比较,找出差异,然后只需要在真实的 DOM 上做出相应的改变。 用JS对象模拟DOM树 首先,我们需要以某种方式将 DOM 树存储在内存中。可以使用普通的 JS 对象来做。假设我们有这样一棵树: <ul class=”list”> <li>item 1</li> <li>item 2</li> </ul> 看起来很简单,对吧? 如何用JS对象来表示呢? { type: ‘ul’, props: { ‘class’: ‘list’ }, children: [ { type: ‘li’,

sass学习笔记2

人盡茶涼 提交于 2019-12-19 05:26:27
今天介绍sass在重用代码时最具威力的两个功能。一个是 嵌套 (Nesting),一个 混合 (Mixin)。 我们在写CSS通过需要多个后代选择器组合到一起才能定位到目标元素上,而这定义过程,此元素的父元素与其他选择器都有许多相同的部分, 嵌套 就是把这些相同的部分放到某一层花括号里,然后通过花括号的层层缩进堆砌,找到它们的共性与特性。 @charset "utf-8";//必须设置了这个才能编译有中文的注释 nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } //------------------------------ nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; } 当某一天,我们要兼容IE678等低级浏览器,发现它直接用nav不行时,需要改成.nav,我们只要改一处就行了

js数组及其常用方法

喜夏-厌秋 提交于 2019-12-19 05:04:45
数组的概念及其定义方式 数组:有序的值的集合 字面量的形式 1 var arr = [1,2,3] 2 Console.log(arr[0]);//0称为索引或下标 3 Console.log(arr.length);//数组中元素的个数4 var arr1=[];5 arr1[0]=10; 构造函数 1 var arr1 = new Array() 2 var arr1 = new Array(10)//长度为10 3 var arr1 = new Array(1,2,3,4)//两个及以上的数字为内容 数组的常用方法(依赖于数组使用) 获取方法:对象.方法( ) 1 <script> 2 var arr =new Array(1,2,3,4,5,6,7,8,9); 3 //push()返回数组中元素的个数,向数组尾部中增加元素,有多少加多少,原数组发生改变。 4 var length=arr.push(10) 5 console.log(arr)//[1,2,3,4,5,6,7,8,9,10] 6 console.log(length)//10 7 8 9 //pop()从数组的尾部删除一个元素,返回这个删除的元素,不接收参数 10 arr.pop() 11 console.log(arr)//[1,2,3,4,5,6,7,8,9] 12 arr.unshift(0)/

SAP常用系统函数归纳

十年热恋 提交于 2019-12-19 02:59:11
函数名 描述 CONVERSION_EXIT_ALPHA_INPUT 料号前面补0 CONVERSION_EXIT_ALPHA_OUTPUT 料号前面减0 CONVERSION_EXIT_MATN1_INPUT 料号前面补0 CONVERSION_EXIT_MATN1_OUTPUT 料号前面减0 LAST_DAY_OF_MONTHS 查询某日期的在当月的最后一天 CO_SF_CAUFVD_GET 根据工单号查询订单抬头和项目 SO_NEW_DOCUMENT_ATT_SEND_API1 外发邮件 VIEW_MAINTENANCE_CALL 调用数据表的维护视图 SO_OBJECT_SEND 外发邮件 函数名 CONVERSION_EXIT_ALPHA_INPUT 功能:料号前面补0, 实例: CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "料号前面加0” EXPORTING input = matnr_in IMPORTING output = matnr_out. 说明:1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0. 2)只能用’字符型’ CONVERSION_EXIT_MATN1_INPUT 功能:料号前面补0 实例: CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

ArrayList源码分析(jdk 1.8)

点点圈 提交于 2019-12-19 01:43:26
写在前面 ArrayList相信大家做开发的同学都不陌生,在开发过程中这应该是最常用的数据结构了吧。但是现在是“源码时代”,会用还不够,要知道他的实现原理,本文主要基于jdk1.8对ArrayList源码进行分析。 一、从主要字段开始 值得注意的是,ArrayList内部会有一个modCount字段,但是这个字段是在父类AbstractList中的,代表着修改次数,后面会讲 /** * 默认容量 */ private static final int DEFAULT_CAPACITY = 10; /** * 空元素集,构造函数传入空集合的时候使用 */ private static final Object[] EMPTY_ELEMENTDATA = {}; /** * 空元素集,默认无参构造函数中使用 */ private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; /** ArrayList真正保存元素的数组,在第一次插入元素的时候扩容 * */ transient Object[] elementData; // non-private to simplify nested class access /** * 当前数组元素个数 * * @serial */ private int size;

JS数组方法总结

徘徊边缘 提交于 2019-12-18 04:36:09
数组的常用方法总结 不改变原数组 1、Array.length; //获取数组长度 2、Array.join(); //将数组以传入的字符串进行拼接,返回拼接后的字符串,默认以“,”来拼接。 3、Array.concat(); //可以向数组末尾添加传入的多个元素,或者是数组 4、Array.slice() //用于复制下数组的一部分,传入的两个参数分别指定开始和结束位置,负数则逆向的数。 5、Array.toString() //等同于Array.join(','); 6、Array.every(function(value,index,Array)) {} ); //用于对数组中的每个元素进行条件检测,全部满足则返回true,否则返回false; 7、Array.some(function(value,index,Array)) {} ); //用于对数组中的每个元素进行条件检测,只要有一个满足则返回true,否则返回false; 8、Array.filter(function(value,index,Array)) {} ); //用于筛选满足条件的数组元素,并将其构成新数组返回; 9、Array.map(function(value,index,Array)) {} ); //用于对数组中的每个元素进行修改,并返回其构成的新数组 10、Array.forEach

【lua】元表

痞子三分冷 提交于 2019-12-17 00:32:05
– lua元表 –当lua试图去对两个表相加时,先检查两个表之一是否有元表,之后再检查是否有一个叫“__add”的字段,若找到,则调用对应得值,如果找不到就返回nil,其中__add为即时字段,其对应的值(一般是函数或者是一个表)就是“元方法” –处理元表的两个函数: – setmetatable (table,metatable) :对指定的table设置元表(metatable),如果元表(metatable)中存在__metatable的键值,settatable会失败 – getmetatable (table) :返回对象的元表(metatable) mytable={} --普通表 mymetatable={} --元表 setmetatable(mytable,mymetatable) --把mymetatable设为mytable的元表 也可以写成: mytable=setmetatable({},{}) getmetatable(mytable) --这里是返回mytable的元表(mymetatable) – __index 元方法 ,这是metatable最常用的键 –当通过键去访问table的时候, 如果这个键没有值,就会去寻找该表的metatable(假定有metatable)中的__index键 , 如果__index包含的一个表

问题 spark udf函数不能序列化

泄露秘密 提交于 2019-12-16 23:27:03
如下在实现spark的udf函数时: val randomNew = ( arra : Seq [ String ] , n : Int ) = > { if ( arra . size < n ) { return arra . toSeq } var arr = ArrayBuffer [ String ] ( ) arr ++ = arra var outList : List [ String ] = Nil var border = arr . length //随机数范围 for ( i < - 0 to n - 1 ) { //生成n个数 val index = ( new Random ) . nextInt ( border ) outList = outList : : : List ( arr ( index ) ) arr ( index ) = arr . last //将最后一个元素换到刚取走的位置 arr = arr . dropRight ( 1 ) //去除最后一个元素 border -= 1 } outList . toSeq } sqlContext . udf . register ( "randomNew" , randomNew ) 执行出现如下错误: Caused by: org.apache.spark.SparkException:

生成器的简单使用

浪尽此生 提交于 2019-12-16 12:08:55
# 生成器函数 函数里面只要有yield关键字,就是一个生成器函数 # 生成器对象也是实现了迭代器协议了的 def gen_func(): yield 1 yield 2 yield 3 def func(): return 1 # 斐波拉契函数 a1 + a2 = a3 # 0,1,1,2,3,5,8,13 def fib(index): ''' :param index: 第index个数 :return: ''' if index == 0: return 0 elif index < 3: return 1 else: return fib(index - 1) + fib(index - 2) def fib1(index): # 这个方式,如果result_list中数据太多,内存撑爆 result_list = [] n, a, b = 0, 0, 1 while n < index: result_list.append(b) a, b = b, a + b n += 1 return result_list def gen_fib(index): # 使用生成器不存在内存撑爆的问题,因为数据是计算一个取一个的 n, a, b = 0, 0, 1 while n < index: yield b a, b = b, a + b n += 1 if __name__