自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

原创 TVM运行系统

TVM运行系统TVM支持多种编程语言用于编译器堆栈的开发和部署。在本说明中,我们解释了TVM运行时的关键元素。转存失败重新上传取消我们需要满足很多有趣的要求: 部署:从python / javascript / c ++语言调用已编译的函数。 调试:在python中定义一个函数,然后从已编译函数调用该函数。 链接:编写驱动程序代码以调用设备专用代码(CUDA)...

2020-03-06 15:55:18 1356

原创 模块序列化简介

模块序列化简介部署TVM运行时模块时,无论是CPU还是GPU,TVM都只需要一个动态共享库。关键是我们统一的模块序列化机制。本文档将介绍TVM模块序列化格式标准和实现细节。模块导出实施例让我们首先为GPU构建一个ResNet-18工作负载作为示例。from tvm import relayfrom tvm.relay import testingfrom tvm....

2020-03-06 11:38:28 434

原创 混合前端开发人员指南

混合前端开发人员指南如果您是开发人员:1.谁正在尝试编写一些TVM尚不支持的初步模式,也许“混合前端语言参考”对您来说是一个更好的地方。 谁想知道这个模块的实现细节,您就在这里! 功能软件仿真在软件仿真中,最有趣的是装饰器tvm.hybrid.script。这个装饰器可以帮助两件事: 导入运行时变量 根据传递的参数重载函数 如果我错了,请纠正我:...

2020-02-13 10:46:52 333

原创 调试

调试TVM调试器是用于调试TVM计算图执行的接口。它有助于在TVM运行时提供对图形结构和张量值的访问。调试交换格式1.计算图通过中继以json序列化格式构建的优化图按原样转储。这包含有关图形的全部信息。UX可以直接使用此图,也可以将此图转换为UX可以理解的格式。图表JSON格式说明如下1.nodes节点是json中的占位符或计算节​​点。节点存储为列表。一个节...

2020-02-13 10:46:10 442

原创 基准性能日志格式

基准性能日志格式此页面详细描述了用于统一基准日志格式的模式v0.1。这种模式将允许与其他框架/运行,实验再现,夜间性能回归数据以及日志记录/可视化工作分离的更容易的交叉引用。日志格式概述为简单起见,我们建议优先考虑字段工作负载,引擎,硬件runtime_ms_mean和runtime_ms_std。对于更细粒度的日志记录,可以另外传播* _config字段。 标头...

2020-02-13 10:41:34 177

原创 InferBound通

InferBound通InferBound传递在规范化之后和ScheduleOpsbuild_module.py之前运行。InferBound的主要工作是创建边界图,该边界图为程序中的每个IterVar指定一个Range。然后将这些边界传递给ScheduleOps,在其中它们用于设置For循环的范围,请参见MakeLoopNest,并设置分配的缓冲区的大小(BuildRealize),...

2020-02-13 10:40:37 1128

原创 Convert Layout Pass

转换布局通行证作者:Animesh Jain1.背景数据布局格式描述了如何在内存中布置数据。例如,卷积运算符的Tensorflow框架默认数据布局为NHWC,即数据为4维,并以行为主格式进行布局,其中N为第一维,C为最后一维。数据布局在模型性能中起主要作用,对空间和时间局部性有重大影响。例如,TVM中的Intel x86后端更喜欢使用布局作为NCHWc,其中C维被平铺为2维,以有效利...

2020-02-13 10:38:11 947

原创 TVM代码库演练示例

TVM代码库演练示例了解新的代码库可能是一个挑战。对于像TVM这样的代码库,尤其如此,其中不同的组件以非显而易见的方式交互。在本指南中,我们尝试通过一个简单的示例来说明构成编译管道的关键元素。对于每个重要步骤,我们都会显示在代码库中的哪个位置。目的是让新开发人员和感兴趣的用户更快地进入代码库。代码库结构概述在TVM存储库的根目录中,我们具有以下子目录,这些子目录一起构成了大部分代码库...

2020-02-13 10:36:41 1319

原创 将VM放入TVM:中继虚拟机

将VM放入TVM:中继虚拟机Relay是一种新的程序表示形式,它可以表示和优化大量的机器学习程序。不幸的是,通过支持一组更具表现力的程序,我们引入了一些新的执行挑战。Relay的解释器可以执行完整的语言,但是有明显的限制,使其不适合生产部署。它被构造为执行AST遍历以执行程序的低效率解释器。这种方法在概念上很简单,但是效率很低,因为AST遍历很大程度上依赖于间接。编译动态代码还面临其他...

2020-02-13 10:35:34 1233

原创 把你自己的代码生成TVM 

把你自己的代码生成要TVM随着深度学习工作负载所针对的硬件设备的数量不断增加,用户在各种设备上实现高性能所需的知识也在不断增加。为了使数据科学家不必担心开发新模型时的性能,硬件后端提供程序要么为MKLDNN或cuDNN之类的库提供许多常用的深度学习运算符,要么提供诸如TensorRT的框架以使用户以某种方式描述其模型实现高性能。但是,用户尝试在新的库或设备上工作时必须学习新的编程界面。结果,...

2020-02-13 10:34:21 1604

原创 将编译器转换添加到Relay

将编译器传递添加到中继编译器通道是扩展Relay功能集和对Relay程序执行优化的主要接口。通过编写编译器通道,可以根据您的目标来修改AST或收集有关AST的信息。确实,Relay的一些最重要的内置功能(例如,autodiff和类型推断)仅是“标准”编译器传递。总体而言,编写通行证有两个关键要素: 创建一个或多个遍历程序的C ++类 在遍历管理器API中包装遍历实现及其元数...

2020-02-13 10:32:31 833 1

原创 Relay传递基础架构

中继传递基础架构中继具有一系列优化过程,可改进模型的性能指标,例如特定设备的平均推断,内存占用量或功耗。有一套标准优化以及特定于机器学习的优化,包括恒定折叠,消除死代码,更改操作员布局和操作员融合等。这些步骤中的每一个都被构造为抽象上的中继到中继转换语法树(AST),使用遍历期间和/或之前收集的分析结果。但是,随着Relay的快速发展,对管理这些通道的更加系统和有效的方法的需求...

2020-02-13 10:31:03 1623

原创 向Relay中添加操作符

目录 注册操作符创建一个调用节点引用一个Python API梯度运算符在Python中添加梯度在C ++中添加求导总结为了从Relay IR中使用TVM操作符,需要在Relay中注册操作符,以确保将其集成到Relay的类型系统中。注册操作符需要三个步骤: 使用C ++中的宏RELAY_REGISTER_OP注册操作符的Arity和类型信息...

2020-02-11 15:08:25 747

翻译 Relay中间表示介绍

目录介绍用Relay构建一个计算图介绍这篇文章介绍Relay——第二代NNVM。我们期望的读者有两类背景,有编程语言开发经历和对计算图表示熟悉的深度学习框架开发人员。我们在这里简要总结设计目标,并将在本文的后半部分涉及这些要点。 支持传统的数据流样式的编程和转换。 支持功能样式的作用域,绑定并使其成为功能齐全的可区分语言。 能够允许用户混合两种编...

2020-01-22 15:58:48 1750

原创 tvm.relay学习(十一)——relay let绑定

Let绑定是不可变的局部变量绑定,允许用户将表达式绑定到名称。Let绑定包含一个局部变量,一个可选的类型注释,一个值和一个可以引用绑定标识符的主体表达式。 如果省略了绑定变量上的类型注释,则Relay会尝试推断该变量允许的最通用类型。Let表达式中的绑定变量仅在其主体范围内,除非该变量定义了函数表达式。 当Let表达式创建函数时,该变量的值也在范围内,以允许递归定义的函数。Let绑定的...

2019-12-06 11:01:21 1082

原创 tvm.relay学习(十)——relay元组

1.元组构造:元组节点构建异构数据的有限(即静态已知大小)序列。 这些元组与Python紧密匹配,并且其固定长度可以有效地映射其成员。fn(%a : Tensor[(10, 10), float32], %b : float32, %c : Tensor[(100, 100), float32]) { let %tup = (%a, %b); // type: (Tens...

2019-12-06 09:59:45 522

原创 tvm.relay学习(九)——relay常量

此节点表示一个恒定的张量值。 常数表示为NDArray,从而允许Relay利用TVM运算符进行常数评估。由于标量是形状为()的张量,因此该节点也可以表示标量常量。 因此,在文本格式中,数字和布尔文字是用于编码具有零秩形状的张量类型的常量的语法糖。...

2019-12-06 09:46:48 361

原创 tvm.relay学习(八)——relay模块和全局函数

Relay保留称为“模块”(在其他功能编程语言中通常称为“环境”)的全局数据结构,以跟踪全局函数的定义。 特别是,模块保持全局变量到它们表示的函数表达式的全局可访问映射。 该模块的实用性是它允许全局函数递归引用自己或任何其他全局函数(例如,在相互递归中)。注意Relay的模块类似于数据结构,用于跟踪基于计算图的IR中的子图。Relay中的全局函数的行为与“函数”中定义的函数表达式相同,但具有文...

2019-12-06 09:44:17 1031

原创 tvm.relay学习(七)——Relay调用

Relay中具有函数类型的表达式是“可调用的”,这意味着它们可以通过函数调用来调用。 这些由计算结果为闭包的任何表达式(即函数表达式或全局函数)和Relay运算符组成。调用的语法遵循类似C的语言所使用的语法,如以下示例所示:let %c = 1;let %f = fn(%x : Tensor[(), float32], %y : Tensor[(), float32]) { %x + ...

2019-12-06 09:35:30 694

原创 tvm.relay学习(六)——ADT(代数数据类型)构造

在本节中,我们将简单地注意到ADT(代数数据类型)构造函数被赋予函数类型,并且应在函数或操作符之类的调用节点内使用。通过提供其构造的ADT(代数数据类型)的名称(全局类型变量)和该构造函数的预期参数的类型,可以定义ADT(代数数据类型)构造函数。如果ADT(代数数据类型)定义包括类型变量,则这些类型变量可能会出现在构造函数中。构造函数不能包含任何其他类型的变量。让我们假设这D是一个ADT(...

2019-12-06 09:09:17 745

原创 tvm.relay学习(五)——relay操作符

操作符是Relay操作中未定义的原始操作,例如add或conv2d。运算符在C++中的全局运算符注册表中声明。 TVM的Tensor操作符清单(TOPI)支持许多常见的操作符。要注册操作符,用户必须提供操作符的实现、其类型以及任何其他所需的元数据。操作符注册表是一个基于列的存储,其中运算符是键,因此任何元数据(可能由优化过程引用)都可以注册为新列。从Relay类型系统的角度来看,操作符是一...

2019-12-05 16:11:55 996

原创 tvm.relay学习(四)——relay中的函数

Relay中的函数的作用类似于其他编程语言中的过程或函数,并用于推广命名子图的概念。函数是Relay中的第一类,这意味着它们就像变量、常量和元组一样是表达式。 另外,Relay中的函数是高阶的,这意味着可以将函数作为参数传递给函数或由函数返回,因为函数表达式求值闭包,闭包是张量和元组之类的值 。函数节点的具体定义可以和文档可以参考https://docs.tvm.ai/api/py...

2019-12-05 15:39:21 1090

原创 tvm.relay学习(三)——relay变量

受LLVM的启发,Relay在抽象语法树和文本格式中显式的区分全局变量和局部变量。在文本格式中,全局变量和局部变量通过前缀和sigils来区分。全局变量以@为前缀,局部变量以%为前缀。这种显式的区分使得某些优化很容易被实施。例如,内联全局定义无需进行分析:只需替换定义即可。全局变量: 全局标志符以@标志前缀来区分,例如“@global”。全局标识符始终引用包含...

2019-12-05 11:35:41 950

原创 tvm.relay学习(二)——relay数据流和控制片段

Relay IR是一个纯粹的、面向表达式语言。下面的部分描述Relay中不同的表达式并给出他们语义的细节。 为了比较Relay和传统基于图的中间表示,从数据流和控制片段的角度考虑Relay是必要的。Relay编程的每一部分都包含表达式,在编写和表示转换时,只影响数据流的情况可以看作是传统的计算图。 数据流片段涵盖了不涉及控制流的一组Relay表达式。...

2019-12-05 11:25:55 1643

原创 tvm.relay学习(一)——relay介绍

relay是一种功能多样的编程语言,用于机器学习系统表达的中间表示。relay支持代数数据类型,闭包,控制流和递归,从而可以直接表示比基于计算图的IR更复杂的模型。relay还包括一种使用类型关系的依赖类型的形式,来处理对参数形状有复杂的要求的操作符的形状分析。relay在设计上是可扩展的,这使得机器学习的研究人员和实践者可以很容易地开发新的大型程序转换和优化。 ...

2019-12-05 10:49:25 4765

原创 pip换源

比较常用的国内镜像包括:(1)阿里云 http://mirrors.aliyun.com/pypi/simple/(2)豆瓣http://pypi.douban.com/simple/(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/(5...

2019-09-04 10:16:07 238

转载 Ubuntu里设置python默认版本为python3(转载)

直接执行这两个命令即可:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150如果要切换默认Python版本,执行:sudo...

2019-08-24 10:52:29 415

原创 Onnx安装

github地址:https://github.com/ONNX1.安装从源文件进行安装sudo apt-get install protobuf-compiler libprotoc-dev cmakegit clone https://github.com/onnx/onnx.gitcd onnxgit submodule update --init --recursi...

2019-08-24 10:49:55 3916

原创 修改apt-get源

1.备份系统自带apt-get源配置文件mv /etc/apt/sources.list /etc/apt/sources_old.list.bak2.编辑源配置文件/etc/apt/sources.listsudo vi/etc/apt/sources.list写入内容:清华大学源deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu...

2019-08-24 10:33:55 945

原创 [让虚拟机像服务器一样工作]虚拟机运行是不开启GUI界面(二)

(1)进入VirtualBox的安装目录2.在该目录下SHIFT+右键,可以看到“在此处打开命令窗口”,点击它3.输入“vBoxManage list vms”,查看虚拟机列表4.输入“vBoxManage startvm 虚拟机名 --type headless”,开启虚拟机5.通过ssh -p 22 用户名@虚拟机IP来连接虚拟机这一步可能会提示你可...

2019-08-01 23:58:52 406

原创 [让虚拟机像服务器一样工作]VirtualBox虚拟机配置IP地址,实现和主机互通(一)

[让虚拟机像服务器一样工作]VirtualBox虚拟机配置IP地址,实现和主机互通(一)VirtualBox虚拟机配置IP地址,实现和主机互通的操作主要分成三步:在主机中设置host-only network适配器 在VirtualBox中配置网卡 在虚拟机里设置固定IP地址1.在主机中设置host-only network适配器(a)找到“网络和共享中心”,点击“更改适配器”...

2019-08-01 23:40:12 2000 1

原创 tensorflow(一)

tf.train.create_global_step用法:tf.train.create_global_step(graph=None)作用:在图中创建全局步长张量参数:graph:在该图中创建全局步长张量。如果丢失,使用默认图。返回:全局步长张量...

2018-11-28 11:29:27 338

翻译 [翻译]Learning Multiple Tasks with Deep Relationship Networks

Abstract受过大规模数据训练的深度网络可以学习可转移的特性,以促进学习多种任务。随着深度特征最终从一般到特定的深度网络的转换,一个根本的问题是如何利用不同任务之间的关系,并提高特定任务层的特性可转移性。本文提出了在深层卷积神经网络中,基于新颖的张量先验的深度关系网络(DRN),在多任务特定层的参数张量上发现任务关系。通过联合学习可转移的特性和任务关系,DRN能够缓解在特征层中负转移的困境...

2018-08-15 12:20:46 2193

翻译 [翻译]Convolutional Two-Stream Network Fusion for Video Action Recognition

摘要近年来,卷积神经网络(卷积神经网络)对视频中人类行为识别的应用提出了不同的解决方案,用于整合外观和运动信息。为了更好地利用时空信息,我们研究了许多在空间和时间上融合卷积塔的方法。我们得出以下结论:(i)不是在softmax层进行融合,而是在一个卷积层上融合空间和时间网络,即不会损失性能,而且在参数上有大量的节省;(ii)最好在最后一个卷积层而不是之前的层上(spatially)融合,而在类...

2018-06-14 11:02:53 6811

翻译 [翻译]Beyond Short Snippets: Deep Networks for Video Classification

摘要卷积神经网络(CNNs)被广泛应用于图像识别问题,在识别、检测、分割和检索方面提供了最先进的结果。在这项工作中,我们提出并评估了几个深度神经网络架构,将在一个视频中更长时间的图像信息结合起来。我们提出了两种处理全长度视频的方法。第一个方法探索了各种卷积时间特征池架构,研究了在为这个任务调整CNN时需要做出的各种设计选择。第二种方法明确地将视频建模为一个有序的帧序列。为此,我们使用了一个循环...

2018-06-14 10:47:30 2736

翻译 [翻译]End-to-End Learning of Motion Representation for Video Understanding

摘要尽管端到端学习的表示最近取得了成功,但手工制作的光流特征仍然被广泛应用于视频分析任务中。为了填补这一空白,我们提出了TVNet,一个新颖的端到端可训练神经网络,从数据中学习光流的特征。TVNet包含了一个特定的光流解算器,即TV-L1方法,并通过将其优化迭代展开为神经层来初始化。因此,TVNet可以直接使用,无需任何额外的学习。此外,它可以与其他特定于任务的网络自然地连接起来,以形成端到端...

2018-06-11 15:53:48 2056

翻译 [翻译]FlowNet: Learning Optical Flow with Convolutional Networks

摘要卷积神经网络(CNNs)最近在各种计算机视觉任务中非常成功,特别是那些与识别有关的任务。光流量估计并不在CNN能够成功完成的任务当中。本文提出了一种能够将光流估计问题作为监督学习任务的CNNs。我们提出并比较两个架构:一个通用架构和另一个架构,包括一个在不同的图像位置关联特征向量的层。由于现有的地ground truth数据集不够大,不足以训练CNN,所以我们生成了一个大型的合成Flyin...

2018-06-07 19:10:03 3971

原创 SPPNet(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)

现存的深度卷积网络需要固定大小的输入图片(例如,224×224)。这个要求可能降低任意大小/尺度图片/子图的识别精度。在SPPnet中,作者提出了另一个共享策略,即“空间金字塔池”,以消除上述需求。SPPNet可以不管图片的大小都可以生成固定长度的表示。图1 上面一行是一般的深度卷积网络的结构,下面一行是SPPNet的网络结构。卷积层接受任意的输入大小,但是它们产生可变大...

2018-06-06 15:30:46 193

C++程序设计(PPT)谭浩强

C++程序设计(PPT)谭浩强。 C++程序设计(PPT)谭浩强

2018-06-06

ntdll 64位

ntdll 64位,可用于深度学习caffe封装 error LNK2019: 无法解析的外部符号 NtClose,该符号在函数 mdb_env_map 中被引用 D:\google-jar\liblmdb \mdb.obj error LNK2019: 无法解析的外部符号 NtCreateSection,该符号在函数 mdb_env_map 中被引用 D:\google-jar\liblmdb\mdb.obj error LNK2019: 无法解析的外部符号 NtMapViewOfSection,该符号在函数 mdb_env_map 中被引用 D:\google-jar\liblmdb\mdb.obj

2018-05-16

ntdll 32位

ntdll 32位,可用于深度学习caffe封装 error LNK2019: 无法解析的外部符号 NtClose,该符号在函数 mdb_env_map 中被引用 D:\google-jar\liblmdb \mdb.obj error LNK2019: 无法解析的外部符号 NtCreateSection,该符号在函数 mdb_env_map 中被引用 D:\google-jar \liblmdb\mdb.obj error LNK2019: 无法解析的外部符号 NtMapViewOfSection,该符号在函数 mdb_env_map 中被引用 D:\google-jar\liblmdb\mdb.obj

2018-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除