前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github项目推荐 | tntorch - 使用PyTorch进行张量网络学习

Github项目推荐 | tntorch - 使用PyTorch进行张量网络学习

作者头像
AI研习社
发布2019-05-08 16:22:27
1.3K0
发布2019-05-08 16:22:27
举报
文章被收录于专栏:AI研习社AI研习社

tntorch - Tensor Network Learning with PyTorch

by rballester

https://tntorch.readthedocs.io/

Github项目地址:

https://github.com/rballester/tntorch

New:我们的 Read the Docs 网站已经发布!

欢迎使用tntorch,一个使用张量网络的PyTorch驱动的建模和学习库。 这种网络的独特之处在于它们使用多线性神经单元(而不是非线性激活单元)。 功能包括:

  • 张量、广播、转让等的基本和花哨索引
  • 张量的分解和重建
  • 元素和张量算术
  • 使用交叉近似从黑盒函数构建张量
  • 统计和敏感性分析
  • 使用自动分化进行优化
  • 杂项。对张量的操作:堆叠、展开、取样、求导等

可用的张量格式包括:

  • CANDECOMP/PARAFAC (CP)
  • Tucker
  • Tensor train (Tensor训练 - TT)
  • 混合: CP-Tucker, TT-Tucker 等等。
  • 部分支持其他分解,如 INDSCAL, CANDELINC, DEDICOM, PARATUCK2, 和自定义格式

例如,以下网络都代表TT和TT-Tucker格式的4D张量(即可以采用 I1 x I2 x I3 x I4可能值的实数函数):

tntorch 中,所有张量分解共享相同的接口。 你可以用容易理解的形式处理它们,就像它们是纯NumPy数组或PyTorch张量一样:

代码语言:javascript
复制
> import tntorch as tn> t = tn.randn(32, 32, 32, 32, ranks_tt=5)  # Random 4D TT tensor of shape 32 x 32 x 32 x 32 and TT-rank 5> print(t)
4D TT tensor:
 32  32  32  32  |   |   |   | (0) (1) (2) (3) / \ / \ / \ / \1   5   5   5   1
> print(tn.mean(t))
tensor(8.0388)
> print(tn.norm(t))
tensor(9632.3726)

解压缩张量很容易:

代码语言:javascript
复制
> print(t.torch().shape)torch.Size([32, 32, 32, 32])

由于PyTorch的自动微分,你可以很容易地定义张量上的各种损失函数:

代码语言:javascript
复制
def loss(t):    return torch.norm(t[:, 0, 10:, [3, 4]].torch())  # NumPy-like "fancy indexing" for arrays

最重要的是,损失函数也可以在压缩张量上定义:

代码语言:javascript
复制
def loss(t):    return tn.norm(t[:3, :3, :3, :3] - t[-3:, -3:, -3:, -3:])

查看 introductory notebook ,了解有关基础知识的所有详细信息。

教程笔记

  • Introduction - 介绍
  • Active subspaces - 活跃子空间
  • ANOVA decomposition - ANOVA分解
  • Boolean logic - 布尔逻辑
  • Classification - 分类
  • Cross-approximation - 交叉近似
  • Differentiation - 微分
  • Discrete/weighted finite automata - 离散/加权有限自动机
  • Exponential machines - 指数机器
  • Main tensor formats available - 可用的主要张量格式
  • Other custom formats - 其他自定义格式
  • Polynomial chaos expansions - 多项式混沌扩张
  • Tensor arithmetics - 张量算法
  • Tensor completion and regression - 张量补全与回归
  • Tensor decomposition - 张量分解
  • Sensitivity analysis - 敏感性分析
  • Vector field data - 矢量场数据

安装

主要依赖项是 NumPyPyTorch。 要下载并安装 tntorch ,请输入:

代码语言:javascript
复制
git clone https://github.com/rballester/tntorch.gitcd tntorchpip install .

测试

我们使用 pytest 进行测试。 简单地运行以下命令即可:

代码语言:javascript
复制
cd tests/pytest
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 教程笔记
  • 安装
  • 测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档