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

2019 年 4 月 17 日 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张量一样:

> 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)

解压缩张量很容易:

> print(t.torch().shape)torch.Size([32, 32, 32, 32])

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

def loss(t):    return torch.norm(t[:, 0, 10:, [3, 4]].torch())  # NumPy-like "fancy indexing" for arrays

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

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 - 矢量场数据

安装

主要依赖项是 NumPy 和 PyTorch 要下载并安装 tntorch ,请输入:

git clone https://github.com/rballester/tntorch.gitcd tntorchpip install .

测试

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

cd tests/pytest

贡献

我们非常欢迎进行pull request。

除了使用问题跟踪器,你也可以通过rballester@ifi.uzh.ch与我联系。


点击阅读原文,查看本文更多内容

登录查看更多
8

相关内容

基于Lua语言的深度学习框架 github.com/torch
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
最新《自动微分手册》77页pdf
专知会员服务
97+阅读 · 2020年6月6日
【图神经网络(GNN)结构化数据分析】
专知会员服务
113+阅读 · 2020年3月22日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
专知会员服务
109+阅读 · 2020年3月12日
《深度学习》圣经花书的数学推导、原理与Python代码实现
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
80+阅读 · 2020年1月13日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
PyTorch 学习笔记(六):PyTorch的十七个损失函数
极市平台
47+阅读 · 2019年5月13日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
最新翻译的官方 PyTorch 简易入门教程
人工智能头条
10+阅读 · 2019年1月10日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
一文读懂PyTorch张量基础(附代码)
数据派THU
6+阅读 · 2018年6月12日
PyTorch:60分钟入门学习
全球人工智能
13+阅读 · 2018年5月18日
手把手教你由TensorFlow上手PyTorch(附代码)
数据派THU
5+阅读 · 2017年10月1日
教程 | 如何从TensorFlow转入PyTorch
深度学习世界
38+阅读 · 2017年9月30日
Arxiv
5+阅读 · 2020年3月16日
Adversarial Reprogramming of Neural Networks
Arxiv
3+阅读 · 2018年6月28日
Arxiv
8+阅读 · 2018年5月21日
Arxiv
11+阅读 · 2018年1月15日
Arxiv
3+阅读 · 2017年12月18日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
最新《自动微分手册》77页pdf
专知会员服务
97+阅读 · 2020年6月6日
【图神经网络(GNN)结构化数据分析】
专知会员服务
113+阅读 · 2020年3月22日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
专知会员服务
109+阅读 · 2020年3月12日
《深度学习》圣经花书的数学推导、原理与Python代码实现
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
80+阅读 · 2020年1月13日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
相关资讯
PyTorch 学习笔记(六):PyTorch的十七个损失函数
极市平台
47+阅读 · 2019年5月13日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
Github项目推荐 | gensim - Python中的主题建模
AI研习社
15+阅读 · 2019年3月16日
最新翻译的官方 PyTorch 简易入门教程
人工智能头条
10+阅读 · 2019年1月10日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
一文读懂PyTorch张量基础(附代码)
数据派THU
6+阅读 · 2018年6月12日
PyTorch:60分钟入门学习
全球人工智能
13+阅读 · 2018年5月18日
手把手教你由TensorFlow上手PyTorch(附代码)
数据派THU
5+阅读 · 2017年10月1日
教程 | 如何从TensorFlow转入PyTorch
深度学习世界
38+阅读 · 2017年9月30日
Top
微信扫码咨询专知VIP会员