tensorly

tensorly

Python张量学习库,兼容多种计算后端

TensorLy是一个专注于简化张量学习的Python库,支持张量分解、张量学习和张量代数操作。其后端系统兼容NumPy、PyTorch、JAX、TensorFlow和CuPy,可在CPU或GPU上执行大规模计算。安装方便,仅需使用pip或conda命令,且提供详尽的文档和Jupyter Notebooks示例,方便用户快速入门。这个工具不仅适合学术研究,还为开发者提供了丰富的API,欢迎通过GitHub进行贡献。

TensorLyPython张量分解机器学习张量代数Github开源项目

TensorLy 项目介绍

项目概述

TensorLy 是一个旨在使张量学习变得简单且易于使用的 Python 库。该库提供了便捷的工具来进行张量分解、张量学习和张量代数。其后端系统支持多种计算框架,包括 NumPy、PyTorch、JAX、TensorFlow、CuPy 和 Paddle,从而可以在 CPU 或 GPU 上大规模地运行各种方法。

安装指南

安装 TensorLy 的唯一前提条件是您已安装 Python 3。最简单的方法是通过 Anaconda 分发进行安装。以下是不同安装方法的指引:

  • 使用 pip 安装(推荐)

    pip install -U tensorly
  • 使用 conda 安装

    conda install -c tensorly tensorly
  • 用于开发(从源代码安装)

    # 克隆库的代码仓库 git clone https://github.com/tensorly/tensorly cd tensorly # 以可编辑模式安装 pip install -e .

需要注意的是,TensorLy 默认依赖于 NumPy。如果需要使用其他后端,需要另外安装相应的软件包。

快速入门

创建张量

用户可以很容易地创建张量,比如创建一个 3x4x2 的小型三阶张量,并对其进行基本操作:

import tensorly as tl import numpy as np tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), dtype=tl.float64) unfolded = tl.unfold(tensor, mode=0) tl.fold(unfolded, mode=0, shape=tensor.shape)

也可以创建随机张量:

from tensorly import random # 一个随机张量 tensor = random.random_tensor((3, 4, 2)) # 一个随机 CP 格式的张量 cp_tensor = random.random_tensor(shape=(3, 4, 2), rank='same')

设置后端

用户可以更改后端以使用不同的计算框架进行计算,默认使用 NumPy。可选择的框架还包括 PyTorch、TensorFlow、JAX、CuPy 和 Paddle。设置后端示例:

tl.set_backend('pytorch') # 或 'numpy', 'tensorflow', 'cupy', 'jax' tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), device='cuda:0') type(tensor) # torch.Tensor

张量分解

在 TensorLy 中应用张量分解相对简单,以 Tucker 分解为例:

from tensorly.decomposition import tucker # 应用 Tucker 分解 tucker_tensor = tucker(tensor, rank=[2, 2, 2]) # 从分解形式重构完整张量 tl.tucker_to_tensor(tucker_tensor)

TensorLy 提供更多种类的分解方法来满足不同的需求。

下一步

以上只是 TensorLy 基本功能的快速介绍。如果想了解更多的信息,请查阅用户指南和 API 文档。

贡献代码

社区欢迎所有的贡献!如果你有想分享的不错的张量方法,或是发现了错误或文档中的问题,请在 GitHub 上报告,或提交 Pull-Request。

测试

测试与文档是 TensorLy 的重要组成部分。测试可以通过 pytest 包运行,确保代码的一致性和功能完整性:

pip install pytest pytest -v tensorly # 指定运行测试的后端 TENSORLY_BACKEND='numpy' pytest -v tensorly

学术引用

如果在学术论文中使用了 TensorLy,请按以下格式引用:

@article{tensorly, author = {Jean Kossaifi and Yannis Panagakis and Anima Anandkumar and Maja Pantic}, title = {TensorLy: Tensor Learning in Python}, journal = {Journal of Machine Learning Research}, year = {2019}, volume = {20}, number = {26}, pages = {1-6}, }

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多