首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    einsum is all you needed

    有没有什么办法让这些张量运算公式稍微显得对人类友好一些呢,能不能减少一些那种扭曲的 \sum 求和符号呢? 小爱发现,求和导致维度收缩,因此求和符号操作的指标总是只出现在公式的一边。...C_{ij} = A_{ik} B_{kj} 这个公式表达的含义如下: C这个张量的第i行第j列由 A 这个张量的第i行第k列和 B 这个张量的第k行第j列相乘,这样得到的是一个三维张量 D , 其元素为...k.t()+b a = torch.bilinear(q,k,W,b) print("a.shape:",a.shape) #=====考虑batch维度==== Q = torch.randn(8,10...) #batch_size,query_features K = torch.randn(8,10) #batch_size,key_features W = torch.randn(5,10,10...a = torch.softmax(q@k.t()/d_k,-1) print("a.shape=",a.shape ) #====考虑batch维度==== Q = torch.randn(8,10

    2.3K40

    数据分析 ——— pandas数据结构(一)

    如果没有索引被传递,则默认为**np.arrange(n)** dtype: 设置数据类型 copy: 复制数据,默认为Flase 1)创建一个空的序列 import numpy as np...DataFrame DataFrame是一个2维标签的数据结构,它的列可以存在不同的类型。你可以把它简单的想成Excel表格或SQL Table,或者是包含字典类型的Series。...columns: 对于列标签,可选的默认语法是 - np.arrange(n)。这只有在没有通过索引的情况下才是正确的。...如果索引被传递,那么索引的长度应该等于数组的长度。 如果没有索引被传递,那么默认情况下,索引将是range(n),其中 n 是数组长度。...# 从ndarrays/List的Dict创建一个DataFrame data1 = {'Name':['Al','Bl','Cl'], 'Age':[9, 8,10]} df1 = pd.DataFrame

    2.5K20

    leetcode-48-旋转图像

    题目描述: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。...原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10...关于程序处理的技巧,笔者最开始想的是,把第一行映射到第四列,把第二行映射到第三列……这样子的做法,但是仔细一想,这样处理未免太过麻烦。...我们也许可以用简单直接一点的方法来做,把matrix看成一个洋葱,第一次旋转最外层,接着旋转第二层,这样子我们每次旋转的时候只需要存储两个变量。 而且这种方法看起来对于人类更加友好,便于设计程序。...//比如四行四列的矩阵,这个循环要执行两次 {                //每次执行一次循环,都会更新四个元素的值 temp1=matrix

    63730

    LeetCode-56-合并区间

    # LeetCode-56-合并区间 给出一个区间的集合,请合并所有重叠的区间。...示例1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6...# 解题思路 方法1、排序+双指针: 虽然示例中没有给出需要排序的案例,但需要考虑数组不是按照首位数组顺序排列的情况,这样会让区间难以判断,所以先做一个排序。...之后初始化双指针,指向第一个区间的start和end 进入for循环判断,判断下一个区间的首位是否大于上个区间的末尾 如果大于,则说明区间分离,加入新区间{start,end},更新start 当下一个区间不大于...end,即的时候,区间均要进行合并,此时区间为上一个区间的start,到当前区间和下一个区间end的最大值,所以end = Math.max(end,intervals[i][1]) 由于开始的

    26010

    A019-布局之GridLayout

    GridLayout 网格布局,是Android4.0之后的API才提供的,算是一个相对新的布局容器,它的用法也很简单,类似LinearLayout可以指定方向,也可以指定控件占用多少行或列的空间。...这里我做了一个登录的一个布局,如果不使用GridLayout来进行布局,可能会有多个布局的嵌套才能实现这样的布局,相对比较麻烦,使用了GridLayout我们可以更加灵活的去控制对齐;网格视图针对行和列进行分割为一个个单元格...android:columnCount=”4” 表示4列 android:rowCount=”4” 表示4行 android:layout_columnSpan=”3” 表示占用3列的空间大小 android...:layout_rowSpan=”3” 表示占用3行的空间大小 android:layout_gravity 可用用来设置控件的对齐方式 总结 前面几篇博客加上本篇博客已经介绍完了Android的布局容器...相信大家学习完这几节课程,对Android中的布局容器已经有了一些了解,每一个控件都不能独立于容器存在,布局容器之后我们接下来就会继续学习控件的使用,通过模块化来学习如何去搭建用户界面,这样才会让大家更加接地气去感受一个

    66230

    HanLP-最短路径分词

    若赋给相应的边长一个权值(该权值可以是常数,也可以是所构成的词的属性值),然后根据该切分图,在起点到终点的所有路径中,求出长度值(包括权值)为最短的一条路径,这条路径上包含的词就是该句子的切分结果。...为进一步提高切分精度,在词典中增加词的属性值,即给每个词也给权重。这样每个词在汉字串中的权重不同(即构成的有向图的边不为等长)。最简单的词的权重可以用词频表示,高频词的权重大,低频词的权重小。...例子:他说的确实在理 图1.JPG 遍历计算过程和回溯分词过程 图2.JPG (1) node列与to列 node列的词语为粗分词网中所有的词,to列为在node列为词word_node的情况下...可以从待计算值所在行的node列读取出word词,在to列中以待计算值所在行开始向上查找word,找到word所在行后(以首次遇到的词为准),begin2to_w列所对应的值就是待计算值。...图4.jpg 可以看表中(7,9),(8,10),(11,13),(12,14),(15,16),(17,18)成对行来验证该公式,其中只有(17.18)行满足了第3个式子。

    93230

    插入区间

    intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 示例 2: 输入:intervals = [[1,2],[3,5],[6,7],[8,10...],[12,16]], newInterval = [4,8] 输出:[[1,2],[3,10],[12,16]] 解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。...互不重叠的前提下,当我们需要插入一个新的区间 时,我们只需要: 找出所有与区间 重叠的区间集合 ; 将 中的所有区间连带上区间 合并成一个大区间; 最终的答案即为不与 重叠的区间以及合并后的大区间。...这样做的正确性在于,给定的区间集合中任意两个区间都是没有交集的,因此所有需要合并的区间,就是所有与区间 重叠的区间。...特别地,如果不存在这样的区间,我们需要在遍历结束后,将 加入答案。

    43221

    android开发之使用SQLite数据库存储

    因此,Android 提供了一些新的 API 来使用 SQLite 数据库,Android 开发中,程序员需要学使用这些 API。...onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。...创建表和索引 为了创建表和索引,需要调用 SQLiteDatabase 的 execSQL() 方法来执行 DDL 语句。如果没有异常,这个方法没有返回值。...,表有一个列名为 _id,并且是主键,这列的值是会自动增长的整数(例如,当你插入一行时,SQLite 会给这列自动赋值),另外还有两列:title( 字符 ) 和 value( 浮点数 )。...Raw Queries 正如 API 名字,rawQuery() 是最简单的解决方法。通过这个方法你就可以调用 SQL SELECT 语句。

    3.3K20

    GridLayout 使用总结「建议收藏」

    ,默认值 android:columnOrderPreserved 使列边界显示的顺序和列索引的顺序相同,默认是true android:rowOrderPreserved 使行边界显示的顺序和行索引的顺序相同...,默认是true android:useDefaultMargins 没有指定视图的布局参数时使用默认的边距,默认值是false item属性 属性 作用 android:layout_column...指定该单元格占据的行数 android:layout_gravity 指定该单元格在容器中的位置 android:layout_columnWeight (API21加入)列权重 android:layout_rowWeight...单独设置app:layout_columnWeight时,这一列的所有item都设置为这个属性,才能达到预期效果,否则这一列中设置了该属性的item,都会被隐藏,显示不出来 单独设置app:layout_rowWeight...weight的方法,但是传入参数时,没有加上f,就调用了第一个方法,搞了半天才发现 所以,如果调用的是第二个方法,一定要注意float参数的表示方法,加个f,如:GridLayout.spec(0,1f

    2.8K30

    Android中的Matrix(矩阵)

    大家好,又见面了,我是你们的朋友全栈君。 写在前面 看这篇笔记之前先看一下参考文章,这篇笔记没有系统的讲述矩阵和代码的东西,参考文章写的也有错误的地方,要辨证的看。...矩阵的乘法 比如有矩阵A和矩阵B,他们分别为: 可以看到A为2行3列的矩阵,B为3行2列的矩阵,矩阵乘法符合下面的规则: 只有A的列数和B的行数相等,A和B才可以做乘法 A*B的结果C是2行2列的矩阵...,行数等于A的行数,列数等于B的列数 结果矩阵C的第一行第一列数值为A的第一行和B的第一列中的数字分别相乘后再相加。...,它看起来大概是下面这样: 在Android中,使用一个3×1的矩阵来表示一个点: x,y分别代表x,y轴上的坐标,而1代表屏幕在z轴上的坐标为默认的。...dy),通过看api的介绍,如果原矩阵为M,那么pre表示的是左乘,post表示右乘: preTranslate : M’ = M * T(dx, dy) // 左乘 postTranslate:

    2.2K10

    开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin

    在 iOS 开发中,开发者可以直接调用 SQLite C API,但是大家也仍然倾向于选择类似 FMDB 这样的框架。...它支持 Kotlin Multiplatform,除了 Android、iOS 这样的移动端平台,还通过 Kotlin/Native 直接支持 macOS、Linux 以及 Windows 等桌面端平台...至此, sqllin-driver 的实现已经没有太多的困难,剩余的开发工作只需要通过封装来抹平两边的差异,并提供合适的 common API 即可。...以这样的方式构建出的 API 可以最大程度的还原 SQL 的语法与语序。...KCP 不仅使用门槛高,而且官方尚未正式发布(这意味着它没有文档且后续 API 可能会发生大的破坏性变更),因此使用 KCP 仿造编写一个类似的功能也同样很难。

    2.3K40

    Android数据存储实现的5大方式

    因此,Android 提供了一些新的 API 来使用 SQLite 数据库,Android 开发中,程序员需要学使用这些 API。...创建表和索引 为了创建表和索引,需要调用 SQLiteDatabase 的 execSQL() 方法来执行 DDL 语句。如果没有异常,这个方法没有返回值。...中使用 SQLite 数据库管理工具 在其他数据库上作开发,一般都使用工具来检查和处理数据库的内容,而不是仅仅使用数据库的 API。...那这个时候有读者就会提出问题,难道两个程序之间就没有办法对于数据进行交换?Android这么优秀的系统不会让这种情况发生的。解决这个问题主要靠ContentProvider。...如果你正在使用Android数据库,则数据列的使用方式就和你以往所熟悉的其他数据库一样。但是,你必须为其定义一个叫_id的列,它用来表示每条记录的唯一性。 5.

    7.9K90

    LeetCode中级算法-排序和搜索(2)

    [输入1] intervals = [[1,3],[2,6],[8,10],[15,18]] [返回1] [[1,6],[8,10],[15,18]] [输入2] intervals = [[1,4]...main import ( "fmt" "sort" ) func main() { input := [][]int {{1,3},{2,6},{8,10},{15,18}} result...target之间的关系,确定mid向左定界,还是想有定界,直到mid指向的元素等于target,则找到了target的下标,否则没有该元素。...[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20 [返回2] false [解法1] 每行进行二分查找, 遍历整个二维矩阵,这样时间复杂度...,直到找到和target相同的元素,这种算法的时间复杂度是O(m + n),但是需要注意的是,需要保证在遍历的时候两个方向的升序、降序方式是相反的,这样可以不考虑回退,即从左下角或者右上角开始向对向方向遍历

    37210
    领券