维度

pytorch --- tensor.permute()和torch.transpose()

我们两清 提交于 2020-01-18 03:24:29
tensor.permute(dim1, dim2, dim3, …) permute可以对任意高维矩阵进行转置.但只有 tensor.permute() 这个调用方式 x = torch . rand ( 2 , 3 , 4 ) print ( "x.shape:" , x . shape ) x = x . permute ( 2 , 1 , 0 ) print ( "x.shape:" , x . shape ) 输出: x.shape: torch.Size([2, 3, 4]) x.shape: torch.Size([4, 3, 2]) [Finished in 1.0s] 例2: t . rand ( 2 , 3 , 4 , 5 ) . permute ( 3 , 2 , 0 , 1 ) . shape Out [ 669 ] : torch . Size ( [ 5 , 4 , 2 , 3 ] ) 总结 传入permute方法的参数是维度, 未进行变换前的dim是[0, 1, 2]的方式, 转换后表示将第0维度和第2维度调换 torch.transpose(tensor, dim1, dim2) transpose只能操作2D矩阵的转置(就是每次transpose只能在两个维度之间转换,其他维度保持不变)。有两种调用方式

c++设计模式-桥模式

大兔子大兔子 提交于 2020-01-18 00:04:37
动机 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度, 乃至多个纬度的变化。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度? 模式定义 将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。 ——《设计模式》GoF 结构 示例 如下是通讯的一个模块 class Messager{//因用户 protected: MessagerImp* messagerImp;//... public: virtual void Login(string username, string password)=0; virtual void SendMessage(string message)=0; virtual void SendPicture(Image image)=0; virtual ~Messager(){} }; class MessagerImp{//因平台不同而变化 public: virtual void PlaySound()=0; virtual void DrawShape()=0; virtual void WriteText()=0; virtual void Connect()=0; virtual MessagerImp(){} }; //平台实现 n

[学习笔记]K-D tree

匆匆过客 提交于 2020-01-17 22:10:41
K-D Tree 先分析一下这个算法的名称:K 是维数,然后D是“Dimension”,维度 显然是一个数据结构 这个数据结构是处理在多维空间内关于“点”的问题 例如“平面内最远点对”,“k”远点对 无论是在几维空间里,都是有坐标轴的 在使用的时候有一种“坐标轴分治”的感觉 维护的信息: split :分裂坐标轴 ls、rs:左右儿子 node:该节点存储的真实点 然后是三个操作:建树,查询,插入 建树: 递归建树。类似 平衡树 选择当前区域的点的各个维度的方差最大的维度(传说如果方差大,数据分散,复杂度或者精度有所保证??),把这个维度当做split 这个节点的真实点就是c[mid] 然后,把这个维度[s]小于c[mid][s]的放在左边,大于的放在右边。 (实现时,用一个nth_element,再重载小于号,可以O(n)实现把中间的放在mid位置上,并且这个维度[s]小于c[mid][s]的放在左边,大于的放在右边。) 然后递归建树即可。 x,y是split 这样,整个K-D Tree就把一些点分成了若干个块。 我们一块一块处理会比较容易剪枝。 来源: https://www.cnblogs.com/yspm/p/12207540.html

[AX]AX2012 商业智能分析

我只是一个虾纸丫 提交于 2020-01-16 21:13:54
分析AX的数据时常作的一件事情就是把AX的表数据导出到Excel后使用数据透视表分析,复杂点的数据可能还需要在两个数据表间先做Lookup整理数据,实际上这就是SQL server analysis服务实现的功能,它负责从数据源中获取数据,从不同维度对数据做汇总,其中最重要的概念就是Cube、Measure和Dimension。Measure是我们关注的数据,比如销售额,Dimension定义了观察数据的角度,比如销售月份、客户分组等,而Cube则是Measure和Dimension的集合。AX使用已经安装运行的SQL分析服务,所以AX的安装工具里面只有配置安装服务的选项,通过它指定分析服务器,配置信息可以在System administration>Setup>Bussiness intelligence>Anaysis service>Analysis server找到。 我们可以使用SQL server自带的分析服务工具(随SQL安装的Visual studio工具)创建Analysis service工程,添加Cube、Measure、Dimension、KPI等,编译部署到分析服务器。手工创建cube分析AX的数据是件很繁琐的事情,因为AX表之间错综复杂的关系(打开AOT/Visual studio projects/Analysis service projects

DeepFM升级版XDeepFM模型

隐身守侯 提交于 2020-01-16 03:42:26
本文参考自 推荐系统遇上深度学习(二十二)--DeepFM升级版XDeepFM模型强势来袭! ,在学习原文的基础上加入一些个人的理解和整理。 1、引言 对于预测性的系统来说,特征工程起到了至关重要的作用。特征工程中,挖掘交叉特征是至关重要的。交叉特征指的是两个或多个原始特征之间的交叉组合。例如,在新闻推荐场景中,一个三阶交叉特征为AND(user_organization=msra,item_category=deeplearning,time=monday_morning),它表示当前用户的工作单位为微软亚洲研究院,当前文章的类别是与深度学习相关的,并且推送时间是周一上午。 传统的推荐系统中,挖掘交叉特征主要依靠人工提取,但是现在依旧需要大量人工去做。 这种做法主要有以下三种缺点: 1)重要的特征都是与应用场景息息相关的,针对每一种应用场景,工程师们都需要首先花费大量时间和精力深入了解数据的规律之后才能设计、提取出高效的高阶交叉特征,因此人力成本高昂; 2)原始数据中往往包含大量稀疏的特征,例如用户和物品的ID,交叉特征的维度空间是原始特征维度的乘积,因此很容易带来维度灾难的问题; 3)人工提取的交叉特征无法泛化到未曾在训练样本中出现过的模式中。 因此 自动学习特征间的交互关系 是十分有意义的。目前大部分相关的研究工作 是基于因子分解机的框架

numpy中shape的部分解释

你。 提交于 2020-01-15 11:58:34
转载自:https://blog.csdn.net/qq_28618765/article/details/78081959和https://www.jianshu.com/p/e083512e4f4c shape函数是numpy.core.fromnumeric中的函数,它的功能是 读取矩阵的长度 ,比如shape[0]就是读取矩阵第一 维度 的长度。 shape的输入参数可以是一个整数(表示维度),也可以是一个矩阵。 参数是一个数时小括号内没有矩阵符号中括号[],返回空: >>> import numpy as np >>> np.shape(0) () 参数是一维矩阵(一个[]): >>> import numpy as np >>> np.shape([1]) (1,) >>> np.shape([1, 2]) (2,) 参数是二维矩阵(两个[]): >>> import numpy as np >>> np.shape([[1],[2]]) (2, 1) >>> np.shape([[1, 2], [2, 3], [3, 4]]) (3, 2) 直接用.shape可以快速读取矩阵的形状,使用shape[0]读取矩阵第一 维度 的长度 >>> import numpy as np >>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8,

用scikit-learn学习主成分分析(PCA)

本秂侑毒 提交于 2020-01-15 07:44:00
    在 主成分分析(PCA)原理总结 中,我们对主成分分析(以下简称PCA)的原理做了总结,下面我们就总结下如何使用scikit-learn工具来进行PCA降维。 1. scikit-learn PCA类介绍     在scikit-learn中,与PCA相关的类都在sklearn.decomposition包中。最常用的PCA类就是sklearn.decomposition.PCA,我们下面主要也会讲解基于这个类的使用的方法。     除了PCA类以外,最常用的PCA相关类还有KernelPCA类,在原理篇我们也讲到了,它主要用于非线性数据的降维,需要用到核技巧。因此在使用的时候需要选择合适的核函数并对核函数的参数进行调参。     另外一个常用的PCA相关类是IncrementalPCA类,它主要是为了解决单机内存限制的。有时候我们的样本量可能是上百万+,维度可能也是上千,直接去拟合数据可能会让内存爆掉, 此时我们可以用IncrementalPCA类来解决这个问题。IncrementalPCA先将数据分成多个batch,然后对每个batch依次递增调用partial_fit函数,这样一步步的得到最终的样本最优降维。     此外还有SparsePCA和MiniBatchSparsePCA。他们和上面讲到的PCA类的区别主要是使用了L1的正则化

apache kylin总结

人走茶凉 提交于 2020-01-15 04:39:50
去年12月挖的坑,今天找时间填上。update:20190119 一、kylin架构 核心是预计算,在此架构上做了一些优化。计算结果存储在Hbase,对Hive等查询转换为Hbase的Scan,提高速度。 缺点亦明显,先天没有AD-HOC能力 二、kylin高可用部署 Kylin的每个结点都可以部署为Job节点(build cube用)兼查询节点。并且每个节点之间对等。因此只要前面加个Nginx做请求转发即可。 Kylin支持通过增加节点水平扩容。 三、kylin on hbase vs kylin on druid 目前的 Kylin 数据存储使用 HBase,存储 Cube 时将维度值和度量值转换成 HBase 的 KeyValue。因为 HBase 不支持二级索引,只有一个行键 (RowKey) 索引,Kylin 的维度值会按照固定的顺序拼接作为 RowKey 存储,那么排在 RowKey 前面的维度,就会获得比后面的维度更好的过滤性能。 也就是说排在rowkey后面的维度查询,效率极低,因为需要scan Hbase的行数非常大,Druid可以解决这个问题。 其特点: 1)数据实时流入,毫秒级延迟即可查询。与ES有些像? 2)支持倒排索引,具有良好的过滤性能。(Hbase只支持一级索引,导致rowkey后面的维度过滤性能差) 这是其较于 Kylin On

如何快速全面建立自己的大数据知识体系?

☆樱花仙子☆ 提交于 2020-01-14 15:08:49
关于大数据知识,相信大家都看过不少各种类型的书籍,也接触过很多有关大数据方面的文章,但是大多都很零散不成系统。所以,此篇文章将大数据知识体系的干货分享出来,带大家从整体体系思路上,了解大数据产品设计架构和技术策略。希望能够帮助大家快速梳理并建立起大数据知识体系。 大数据产品系统性和体系思路 第一步,针对前端不同渠道进行数据埋点,然后根据不同渠道的采集多维数据,也就是做大数据的第一步,没有全量数据,何谈大数据分析; 第二步,基于采集回来的多维度数据,采用ETL对其各类数据进行结构化处理及加载; 第三步,对于ETL处理后的标准化结构数据,建立数据存储管理子系统,归集到底层数据仓库,这一步很关键,基于数据仓库,对其内部数据分解成基础的同类数据集市; 第四步,基于归集分解的不同数据集市,利用各类R函数包对其数据集进行数据建模和各类算法设计,里面算法是需要自己设计,个别算法可以用R函数,这个过程产品和运营参与最多;这一步做好了,也是很多公司用户画像系统的底层; 第五步,根据建立的各类数据模型及算法,结合前端不同渠道不同业务特征,根据渠道触点自动匹配后端模型自动展现用户个性化产品和服务。 建立系统性数据采集指标体系 建立数据采集分析指标体系是形成营销数据集市的基础 ,也是营销数据集市覆盖用户行为数据广度和深度的前提,数据采集分析体系要包含用户全活动行为触点数据