维度

TensorFlow基础知识(二)

微笑、不失礼 提交于 2019-12-05 02:49:50
摘要:本文是TensorFlow基础知识的第二部分。 1、张量的典型应用 1.1 标量 一般用来进行误差值的表示、各种测量指标的表示,例如:准确率、精度、召回率等。下面举例: 1.2 向量 在神经网络当中,向量更是十分的常见,例如神经元的偏置值b一般就要用向量来表示,这里的向量就是 【b1,b2】 T 例如我们现在要创建一个输入为5个结点,输出层为4个结点的线性网络层,那么此时创建的网络偏置值应该就是4维的,并且在TensorFlow中默认初始值为0: 1.3 矩阵 很多情况下会用到矩阵,最典型的就是权重的表示。例如我们创建一个线性网络层: 输入:【2,4】,也就是输入特征的长度为4,样本数为2; 输出:【3,2】,也就是有三个输出,两个样本; 权值:【4,3】 具体如下: 再例如,我们可以通过Dence方法创建一个网络层,然后通过kernel属性可以直接查看权重矩阵的形式,我们设计如下的网络层:输入4个结点,输出3个结点: 1.4 三维张量和四维张量 一般来讲:语义信息用三维张量表示,第一位表示句子个数,第二位表示句子的长度,第三位表示句子中单词的编码;图像信息用四维张量表示:第一位表示图像的数目,第二位、第三位表示图像的宽和高、第四位表示图像的通道数。 2、索引和切片 2.1 索引 所谓索引就是获取某一个层面的张量的信息。有两种方式: 中括号法下标法【】【】【】...

pytorch 花式张量(Tensor)操作

元气小坏坏 提交于 2019-12-05 02:34:09
一、张量的维度操作 1.squezee & unsqueeze x = torch.rand(5,1,2,1) x = torch.squeeze(x)#去掉大小为1的维度,x.shape =(5,2) x = torch.unsqueeze(x,3)#和squeeze相反在第三维上扩展,x.shape = (5,2,1) 2.张量扩散,在指定维度上将原来的张量扩展到指定大小,比如原来x是3 1,输入size为[3, 4],可以将其扩大成3 4,4为原来1个元素的复制 x = x.expand(*size) 3.转置,torch.transpose 只能交换两个维度 permute没有限制 x = torch.transpose(x, 1, 2) # 交换1和2维度 x = x.permute(1, 2, 3, 0) # 进行维度重组 4.改变形状,view&reshape 两者作用一样,区别在于是当从多的维度变到少的维度时,如果张量不是在连续内存存放,则view无法变成合并维度,会报错 x = x.view(1, 2, -1)#把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其他维度的tensor x = x.reshape(1, 2, -1) 5.张量拼接 cat & stack torch.cat(a

通用报表设计

一笑奈何 提交于 2019-12-05 02:17:31
通用报表设计 通用报表:我们之前决策系统给别的系统提供了很多报表,查看商品的销售情况,但是这个每增加一个指标,或者维度都需要修改代码的实现 所以我们希望提供一个报表模块,能够实现可视化的数据指标配置、维度配置、筛选器配置。 因为这个展示的数据是需要后端的指标数据进行计算的(比如:psd=销售额/销售店天数),所以需要将前端展示指标和后端数据指标分拆。 为了解决上述问题,我们抽象出一个数据源的概念:展示指标、数据指标、展示指标与数据指标的映射关系、支持的维度、支持的过滤器、数据源名称一个类去集合这些属性。 前端可以获取支持所有的报表名称,然后根据报表名称获取该数据源支持的筛选器、维度、指标 前端勾选想要用到的筛选器、展示指标、维度;根据数据源映射到实际的数据指标组装成为查询参数 请求数据组同学提供的durid-io查询接口,获取查询结果。 合并指标,将查询出来的数据指标合并为展示指标 将数据按照维度进行分组,然后进行格式化数据。 来源: https://www.cnblogs.com/zhangchiblog/p/11897135.html

Druid 驱动海量实时多维分析

旧时模样 提交于 2019-12-05 01:07:38
我今天分享的话题是Druid驱动海量数据实时多维分析。 1、需求背景 首先我来谈一下海量实时多维分析的需求背景,我们广告系统有DSP睿视系统和AD exchange等,前段时间品友的曹老师分享时提到DSP Ad exchange,如果对DSP不了解的同学,可以在百度百科上查一下“互联网广告DSP”,实时竞价是DSP的核心,广告主或者优化师需要动态调整出价优化使收益最大化。 广告主调整出价策略或者投放策略进行优化,想要尽快得到实时的反馈,比如修改了地域定投,实时分地域的竞得率和转化率,甚至是分钟粒度的。在我们的DSP系统中我们提供12种维度(不算多)的多维分析,用户可以任意组合下钻查询。 最初的时候我并不是采用Druid,而是采用Storm+Kafka+Redis实时数据处理,以及hive+mysql的离线处理的Lambda架构架构见下图。 实时数据经过Storm ETL,主要是将不同维度组合作为key,计算metrics以后为value存在redis中。离线数据定时将昨天的数据在Hive中 经过一系列ETL,按照维度组合计算metrics以后将结果存储在mysql中。 采用redis作为实时数据的存储有两个核心问题需要解决: redis不支持range scan,我们需要在app层拼好所有的key,然后调用mget获取,如果执行groupby查询的话例如select area,pv

EasyReport使用指南.md

丶灬走出姿态 提交于 2019-12-04 08:51:12
EasyReport使用指南.md https://github.com/xianrendzw/EasyReport https://github.com/xianrendzw/EasyReport/tree/bigdata A simple and easy to use Web Report System for java EasyReport是一个简单易用的Web报表工具,它的主要功能是把SQL语句查询出的行列结构转换成HTML表格(Table),并支持表格的跨行(RowSpan)与跨列(ColSpan)。同时它还支持报表Excel导出、图表显示及固定表头与左边列的功能。 欢迎加入QQ群交流:(365582678) 目录 开发环境(Development Environment) 安装与部署(Installation & Deployment) 从源代码安装(From Source Code) 从发布包安装(From Release Packages) 定时任务程序部署(Scheduled Task Deamon) 使用说明(User Guide) 预备知识(Prerequisites) 数据源设置(DataSource Configuration) 配置管理(Configuration) 报表设计(Reporting Design) 定时任务配置管理(Scheduled

你需要的不是实时数仓 | 你需要的是一款合适且强大的OLAP数据库(上)

◇◆丶佛笑我妖孽 提交于 2019-12-04 07:53:14
前言 今年有个现象,实时数仓建设突然就被大家所关注。我个人在公众号也写过和转载过几篇关于实时数据仓库的文章和方案。 但是对于实时数仓的狂热追求大可不必。 首先,在技术上几乎没有难点,基于强大的开源中间件实现实时数据仓库的需求已经变得没有那么困难。其次,实时数仓的建设一定是伴随着业务的发展而发展,武断的认为Kappa架构一定是最好的实时数仓架构是不对的。实际情况中随着业务的发展数仓的架构变得没有那么非此即彼。 在整个实时数仓的建设中,OLAP数据库的选型直接制约实时数仓的可用性和功能性。本文从业内几个典型的数仓建设和发展情况入手,从架构、技术选型和优缺点分别给大家分析现在市场上的开源OLAP引擎,旨在方便大家技术选型过程中能够根据实际业务进行选择。 管中窥豹-菜鸟/知乎/美团/网易严选实时数仓建设 为什么要构建实时数据仓库 传统的离线数据仓库将业务数据集中进行存储后,以固定的计算逻辑定时进行ETL和其它建模后产出报表等应用。离线数据仓库主要是构建T+1的离线数据,通过定时任务每天拉取增量数据,然后创建各个业务相关的主题维度数据,对外提供T+1的数据查询接口。计算和数据的实时性均较差,业务人员无法根据自己的即时性需要获取几分钟之前的实时数据。数据本身的价值随着时间的流逝会逐步减弱,因此数据发生后必须尽快的达到用户的手中,实时数仓的构建需求也应运而生。 总之就是一句话:时效性的要求。

python 数据分析

我的梦境 提交于 2019-12-04 06:52:11
IPython 变量名? 函数名?获取相关帮助 %run [文件名].py 执行py文件 数据的维度:一组数据的组织形式 列表和数组: 一组数据的有序结构 区别: 列表:数据类型可以不同 数组:数据类型相同 一维数据:列表(有序)、集合(无序) 二(多)维数据:多维列表 高维数据:字典类型、数据表示格式JSON、XML NumPy科学计算基础库 N维数组对象ndarray 广播功能函数 整合C/C++/Fortran代码的工具 线性代数、傅里叶变换、随机数生成等功能 import numpy as np 为什么需要数组类型? 数组对象可以去掉元素间运算所需循环,使一维向量更像单个数据。 设置专门的数组对象,经过优化,可以提升这类应用的运算速度。 数组对象采用相同的数据类型,有助于节省运算和存储空间。 ndarray是一个多维数组对象,由两部分构成: 1.实际的数据 2.描述这些数据的元数据(数据维度、数据类型) ndarray要求数据元素类型相同,数组下标从0开始 np.array()#生成一个ndarray数组 轴(axis):保存数据的维度 秩(rank):轴的数量 属性: .ndim #秩(轴的数量) .shape #ndarray对象的尺度,n行m列 .size #ndarray对象元素个数 n*m .dtype #ndarray元素类型 .itemsize

Kylin笔记

允我心安 提交于 2019-12-04 06:34:20
简介 Apache Kylin(Extreme OLAP Engine for Big Data)是一个开源的分布式 分析引擎,为Hadoop等大型分布式数据平台之上的超大规模数据集通过标准 SQL查询及多维分析(OLAP)功能,提供亚秒级的交互式分析能力。 Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。 它提供Hadoop之上的SQL查询接口及 多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在 亚秒级查询巨大的Hive表,并支持高并发。 于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,于 2015年11月正式毕业成为Apache顶级项目,也成为首个完全由中国团队设计开发的 Apache顶级项目。 于2016年3月,Apache Kylin核心开发成员创建了Kyligence公司,力求 更好地推动项目和社区的快速发展。 使用它的原因 在大数据的背景下,Hadoop的出现解决了数据存储问题,但如何对海量数据进行 OLAP查询,却一直令人十分头疼。企业中大数据查询大致分为两种:即席查询和定制查询。 即席查询 Hive、SparkSQL等OLAP引擎,虽然在很大程度上降低了数据分析的难度,但它们都只适用于即席查询的场景。 它们的优点是查询灵活,但是随着数据量和计算复杂度的增长

分组填报表的制作

浪尽此生 提交于 2019-12-04 05:38:35
在前面几篇文章中,我们一起学习了行式填报表制作的相关内容,也了解了多源 SQL 和脚本两种数据处理方式,今天我们来研究一下如何制作分组填报表。 同样地,我们以 demo 示例库中的雇员表信息维护为例,在数据填报页面,需要实现以下效果: 1)雇员信息按照地区分组显示 2)雇员基本信息可进行修改 效果图如下图所示: 在制作分组填报表之前,我们先来看一下它的设计原理。 原理说明: 分组填报表中有两个维度:分组维度和明细维度,如何处理两者之间的逻辑关系是重点,这两个维度之间应该是什么样的一种逻辑关系呢?我们先来看一个简单的例子,A1 单元格为分组维度,B1 单元格为明细维度,两者关系如下: A1:[1,2] 单元格在解析计算时会展开成 1,2 两个分组 B1:[[11,55],[22,44]] B1 需要按照 A1 的分组维度展开对应的数据 分组维度是两个值,那么明细维度要分别对应设置序列:1 对应 [11,55],2 对应 [22,44],最终解析结果如上图右侧所示。 从这里我们可以看出来,明细维度和分组维度是一一对应的,我们需要将符合维度值的数据整理为一个序列,这样才能保证结果页面数据的对应关系是正确的。 在了解了原理之后,我们来看详细实现步骤: 第一步 新建空白填报表 编辑填报表内容和样式,如下图所示: 第二步 设置数据处理 根据我们前面讲到的原理,来源脚本内容如下图所示: A B