0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谷歌宣布开源张量计算库TensorNetwork及其API

DPVg_AI_era 来源:lq 2019-06-23 09:54 次阅读

谷歌宣布开源张量计算库TensorNetwork及其API,使用TensorFlow为后端,对GPU处理速度进行优化,与CPU相比,计算加速效果高达100倍。

现代科学领域中,有很多艰巨困难的科学任务,比如开发高温超导体材料、了解空间和时间的本质等,都涉及到处理量子系统的复杂性。这些问题之所以困难,是因为这些系统中的量子态数量呈指数级增长,使得暴力计算行不通了。

为了解决这个问题,人们利用名为“张量网络”的数据结构,可以专注于与现实问题最为相关的量子态——低能量状态,而忽略其他不相关的状态。张量网络也越来越多地在机器学习中得到应用。

然而,目前在机器学习中应用张量还存在一些困难:比如用于加速硬件的生产级张量网络库尚未在大规模运行张量网络算法中部署,而且,大多数关于张量网络的文献是面向物理学科领域的应用。这也让人们产生一种错误印象,认为需要掌握量子力学的专业知识才能理解张量算法。

本次开源的TensorNetwork使用TensorFlow作为后端,并针对GPU处理进行了优化,与CPU相比,处理速度可以实现100倍的加速。此前已经介绍了TensorNetwork,包括新的库及其API,并针对非物理学背景的读者对张量网络进行了概述,介绍了张量网络在物理学中的特定应用实例,展示了使用GPU带来的处理速度的显著提升。

为什么Tensor Networks有用?从张量的图解表示说起

张量是一种多维数组,根据数组元素的顺序按层级分类:例如,普通数是零阶张量(也称为标量),向量可视为一阶张量,矩阵可视为二阶张量等等。低阶张量可以很容易用一个明确的数字数组或数学符号来表示。

不过涉及到高阶时,这种符号法就变得非常麻烦。使用图解符号对于解决这个问题很有用,一种方法是简单地绘制一个圆(或其他形状),引出多条线或者说“腿”,腿的数量与张量的阶数相同。在这种表示法中,标量表示为一个圆,矢量有一条腿,矩阵有两条腿等。张量的每条腿也有一个尺寸,就是腿的长短。例如,表示物体通过空间的速度的矢量就是三维的一阶张量。

张量的图解表示法

以这种方式表示张量的好处是可以简洁地对数学运算进行编码,例如,用矩阵乘以向量,获得另一个向量,或者将两个向量相乘,得到一个标量。这些都是所谓“张量收缩”的更一般的概念。

张量收缩的图解表示法。图中所示为矢量和矩阵乘法以及矩阵迹线(即矩阵的对角元素的总和)

以下是张量网络的简单示例。张量网络是对几个张量收缩,形成新张量的模式进行编码的图形化表示。构成新张量的每个张量具有各自的阶数,图上表示为腿的数量。互相连接的腿,在图中形成边,表示张量的收缩,而剩余的悬在外面的腿的数量就是生成的新张量的阶数。

左:四个矩阵乘积的表示,即tr(ABCD),它是一个标量,图中没有腿。右:三个三阶张量收缩,最终有三条腿悬在外面,即产生一个新的三阶张量。

虽然这些例子非常简单,但张量网络通常代表以各种方式收缩的数百个张量。用传统的符号来描述这样一件事是很难理解的,这就是Roger Penrose在1971年发明图解符号(diagrammatic notation)的原因。

张量网络在实践中的应用

想象一组黑白图像,每个图像都可以看作是一个n个像素值的列表。单个图像的单个像素可以被一个one-hot编码为二维矢量,通过将这些像素编码结合在一起,我们可以对整个图像进行2N维的one-hot编码。我们可以将这个高维向量重塑成一个order-N张量,然后将图像集中的所有张量相加,得到一个总张量Ti1,i2,...,iN集合。

这听起来是一件非常浪费的事:用这种方式编码大约50像素的图像将占内存许多PB的空间。这就该用到张量网络了。与其直接存储或操纵张量T,不如将T表示为张量网络形状中许多较小组分张量的收缩。结果证明效率更高。例如,流行的矩阵积态(MPS)网络将把T写成N个更小的张量,这样参数的总数在N中只是线性的,而不是指数的。

在矩阵积态张量网络中,高阶张量T用许多低阶张量表示。

不明显的是,大张量网络可以被有效地创建或操作,同时始终避免占用大量内存。但事实证明,这在许多情况下是可能的,这就是为什么张量网络在量子物理学和现在的机器学习中被广泛使用的原因。

谷歌AI的研究人员Stoudenmire和Schwab使用刚才描述的编码来建立一个图像分类模型,展示了张量网络的新用途。TensorNetwork库的设计就是为了方便这种工作,我们第一篇论文(https://arxiv.org/pdf/1905.01330.pdf)就描述了该库如何用于一般的张量网络操作。

性能实例分析:计算速度提升100倍

张量网络是张量网络算法的通用库,对物理学家也有一定的帮助。量子态的近似是物理中张量网络的一个典型用例,非常适合用来说明张量网络库的功能。在第二篇论文(https://arxiv.org/pdf/1905.01331.pdf)中,我们描述了一种tree tensor network(TTN)算法,用于估算周期性量子自旋链(1D)或薄环面上的晶格模型(2D)的基态,并用张量网络实现了该算法。在使用GPU和TensorNetwork库时,我们比较了CPU和GPU的使用情况,并观察到计算速度显著提高,高达100倍。

计算时间作为键维数的函数,χ。 键合维度决定了张量网络的组成张量的大小。 更大的键维度意味着更强大的张量网络,但需要更多的计算资源来操纵。

未来方向:时间序列分析和量子电路模拟

我们计划用一系列的论文来说明张量网络在实际应用中的强大之处,这是第一篇。在下一篇论文中,我们将使用TensorNetwork对MNIST和Fashion-MNIST数据集中的图像进行分类。

未来的计划包括机器学习方面的时间序列分析和物理方面的量子电路模拟。通过开源社区,我们会经常为TensorNetwork添加新功能。我们希望TensorNetwork将成为物理学家和机器学习实践者的宝贵工具。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5835

    浏览量

    103220
  • AI
    AI
    +关注

    关注

    87

    文章

    26338

    浏览量

    263943
  • 机器学习
    +关注

    关注

    66

    文章

    8094

    浏览量

    130513

原文标题:谷歌AI开源张量计算库TensorNetwork,计算速度暴涨100倍

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    赋能产业互联网,高通量计算让世界更高效!

    随着互联网技术的迅猛发展,计算机的主要应用从以传统的科学与工程计算为主逐步演变为以数据处理为核心,以传统高性能计算机体系结构为核心技术的新型基础设施面临巨大挑战,高通量计算应运而生。中
    发表于 04-12 14:46 94次阅读
    赋能产业互联网,高通<b class='flag-5'>量计算</b>让世界更高效!

    NVIDIA宣布推出基于Omniverse Cloud API构建的全新软件框架

    NVIDIA 在 GTC 大会上宣布推出基于 Omniverse Cloud API(应用编程接口)构建的全新软件框架。
    的头像 发表于 03-25 09:09 183次阅读

    谷歌发布轻量级开源人工智能模型Gemma

    谷歌近日宣布推出开源人工智能(AI)模型系列Gemma,旨在为开发人员和研究人员提供一个负责任的AI构建平台。这一举措标志着自2022年OpenAI的ChatGPT引领AI聊天机器人热潮后,
    的头像 发表于 02-23 11:38 396次阅读

    量计算公式多少度电 电量和度数怎么换算

    量计算公式多少度电? 电量计算公式是通过电压和电流的乘积来计算的,单位为瓦特-小时(Wh)。公式为: 电量(Wh)= 电压(V) × 电流(A) × 使用时间(小时) 其中,电压是指电流通过的电器
    的头像 发表于 02-03 14:42 9803次阅读

    LTM4620给fpga提供1.0V内核电源,4620输出电容量计算是否应该包含布局在fpga芯片附近的bulk电容?

    LTM4620给fpga提供1.0V内核电源,4620输出电容量计算是否应该包含布局在fpga芯片附近的bulk电容? 靠近FPGA布局的电容也比较大,比如470uF。但这些电容隔4620布局比较远,大于7cm。通过内电层铺铜连接。
    发表于 01-05 06:01

    芯原与谷歌携手合作开源项目Open Se Cura

    2023年12月19日,中国上海——芯原股份 (芯原,股票代码:688521.SH) 今日宣布谷歌合作支持新推出的开源项目Open Se Cura。
    的头像 发表于 12-19 09:07 242次阅读

    采用AD5933进行阻抗测量,测量计算后的阻值会随实际值增大而增大的原因?

    您好,最近采用AD5933进行阻抗测量,电路如下图: 编程控制Vout 为2Vp-p,30kHz;PGA=1;校准电阻10k 测量计算后的阻值会随实际值增大而增大,但不成比例;具体数值如下: 请问出现这种问题的原因是什么?
    发表于 12-12 07:38

    铜排载流量计算方法

    铜排是工业中常用的一种导电材料,通常用于电路板、电缆和电器设备中。在设计和使用铜排的过程中,需要准确计算其载流量,以确保其正常工作和安全可靠。本文将详细介绍铜排载流量的计算方法。 铜排载流量计算
    的头像 发表于 12-08 14:06 2867次阅读

    ETAP无功补偿(1)补偿量计算案例

    本文给出了在ETAP中无功电容补偿手工计算、电容器实际容量输出的几个案例。
    的头像 发表于 11-01 11:37 811次阅读
    ETAP无功补偿(1)补偿<b class='flag-5'>量计算</b>案例

    TI电量计算法流程学习笔记

    在了解电量计算法之前,我们需要先了解一些电池、电量计领域常见专有名词的缩写定义。
    的头像 发表于 10-16 16:23 1689次阅读
    TI电<b class='flag-5'>量计算</b>法流程学习笔记

    GPU的张量核心: 深度学习的秘密武器

    GPU最初是为图形渲染而设计的,但是由于其卓越的并行计算能力,它们很快被引入深度学习中。深度学习的迅速发展离不开计算机图形处理单元(GPU)的支持,而GPU中的张量核心则被誉为深度学习的秘密武器
    的头像 发表于 09-26 08:29 515次阅读
    GPU的<b class='flag-5'>张量</b>核心: 深度学习的秘密武器

    开源三方】bignumber.js:一个大数数学

    OpenHarmony应用。如果是发布到开源社区,称为开源三方,开发者可以通过访问开源社区获取。接下来我们来了解bignumber.js开源
    发表于 08-21 16:37

    泰矽微宣布量产单串电池电量计芯片TCB561

    (1.98mmX1.30mmX0.415mm),用于单串锂离子或锂聚合物电池的电量管理。TCB561内置高精度电流电压检测电路,集成基于精准电池模型的高精度自适应电量计算法,较传统阻抗算法或电压补偿算法
    发表于 07-11 15:23 617次阅读
    泰矽微<b class='flag-5'>宣布</b>量产单串电池电<b class='flag-5'>量计</b>芯片TCB561

    谷歌助手LED控制开源分享

    电子发烧友网站提供《谷歌助手LED控制开源分享.zip》资料免费下载
    发表于 06-30 09:51 0次下载
    <b class='flag-5'>谷歌</b>助手LED控制<b class='flag-5'>开源</b>分享

    浅谈开源AI基本理念、技术开发的底层原理

    大家可能已经发现,从 I 到 O 的转换需要大量计算。这还只是一部分,tarnsformers 中的自注意力步骤需要消耗更多算力。
    发表于 06-09 15:09 610次阅读
    浅谈<b class='flag-5'>开源</b>AI基本理念、技术开发的底层原理