[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-tensorly--tensorly":3,"tool-tensorly--tensorly":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":64,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":76,"owner_url":77,"languages":78,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":95,"env_os":96,"env_gpu":97,"env_ram":98,"env_deps":99,"category_tags":104,"github_topics":105,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":122,"updated_at":123,"faqs":124,"releases":153},4930,"tensorly\u002Ftensorly","tensorly","TensorLy: Tensor Learning in Python.","TensorLy 是一个专为 Python 设计的开源库，旨在让复杂的张量学习变得简单易懂。它核心解决了高维数据处理难题，帮助用户轻松执行张量分解、张量代数运算及模型构建。对于需要处理多维数组（如视频数据、神经科学信号或推荐系统矩阵）的研究人员和开发者而言，TensorLy 填补了通用数值计算库在高级张量操作上的空白。\n\n该工具最大的技术亮点在于其灵活的“后端系统”。用户无需更改代码逻辑，即可无缝切换底层计算引擎，支持 NumPy、PyTorch、JAX、TensorFlow、CuPy 甚至 PaddlePaddle。这意味着你既可以在 CPU 上进行快速原型验证，也能轻松迁移到 GPU 集群进行大规模并行计算，极大地提升了实验效率与部署灵活性。\n\nTensorLy 特别适合数据科学家、机器学习研究员以及需要处理高维数据的工程师使用。无论你是希望深入探索张量分解算法的学术界人士，还是致力于构建高效深度学习模型的工业界开发者，TensorLy 都能提供简洁统一的接口，降低技术门槛，让你更专注于算法创新而非底层实现细节。",".. image:: https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftensorly.svg\n    :target: https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftensorly\n\n.. image:: https:\u002F\u002Fanaconda.org\u002Ftensorly\u002Ftensorly\u002Fbadges\u002Fversion.svg   \n    :target: https:\u002F\u002Fanaconda.org\u002Ftensorly\u002Ftensorly\n\n.. image:: https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main\n    :target: https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Factions\u002Fworkflows\u002Ftest.yml\n\n.. image:: https:\u002F\u002Fcodecov.io\u002Fgh\u002Ftensorly\u002Ftensorly\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=mnZ234sGSA\n    :target: https:\u002F\u002Fcodecov.io\u002Fgh\u002Ftensorly\u002Ftensorly\n\n.. image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSlack-join-brightgreen\n    :target: https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ftensorly\u002Fshared_invite\u002Fzt-wqnts2sk-wbiRX6ml~Xt6~GDYWRPFfg\n\n\n========\nTensorLy\n========\n   \n\nTensorLy is a Python library that aims at making tensor learning simple and accessible. It allows to easily perform tensor decomposition, tensor learning and tensor algebra. Its backend system allows to seamlessly perform computation with NumPy, PyTorch, JAX, TensorFlow, CuPy or Paddle, and run methods at scale on CPU or GPU.\n\n- **Website:** https:\u002F\u002Ftensorly.org\n- **Source-code:**  https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\n- **Jupyter Notebooks:** https:\u002F\u002Fgithub.com\u002FJeanKossaifi\u002Ftensorly-notebooks\n\n----------------------------\n\nInstalling TensorLy\n===================\n\nThe only pre-requisite is to have **Python 3** installed. The easiest way is via the `Anaconda distribution \u003Chttps:\u002F\u002Fwww.anaconda.com\u002Fdownload\u002F>`_.\n\n+-------------------------------------------+---------------------------------------------------+\n|      **With pip** (recommended)           |         **With conda**                            |\n+-------------------------------------------+---------------------------------------------------+\n|                                           |                                                   |\n| .. code::                                 | .. code::                                         |\n|                                           |                                                   |\n|   pip install -U tensorly                 |   conda install -c tensorly tensorly              |\n|                                           |                                                   |\n|                                           |                                                   |\n+-------------------------------------------+---------------------------------------------------+\n|                               **Development (from git)**                                      |\n+-------------------------------------------+---------------------------------------------------+\n|                                                                                               |\n|          .. code::                                                                            |\n|                                                                                               |\n|             # clone the repository                                                            |\n|             git clone https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly                                    |\n|             cd tensorly                                                                       |\n|             # Install in editable mode with `-e` or, equivalently, `--editable`               |\n|             pip install -e .                                                                  |\n|                                                                                               |\n+-----------------------------------------------------------------------------------------------+  \n \n**Note:** TensorLy depends on NumPy by default. If you want to use other backends, you will need to install these packages separately.\n\nFor detailed instruction, please see the `documentation \u003Chttp:\u002F\u002Ftensorly.org\u002Fdev\u002Finstallation.html>`_.\n\n------------------\n\nQuickstart\n==========\n\nCreating tensors\n----------------\n\nCreate a small third order tensor of size 3 x 4 x 2, from a NumPy array and perform simple operations on it:\n\n.. code:: python\n\n   import tensorly as tl\n   import numpy as np\n\n\n   tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), dtype=tl.float64)\n   unfolded = tl.unfold(tensor, mode=0)\n   tl.fold(unfolded, mode=0, shape=tensor.shape)\n\n\nYou can also create random tensors:\n\n.. code:: python\n\n   from tensorly import random\n   \n   # A random tensor\n   tensor = random.random_tensor((3, 4, 2))\n   # A random CP tensor in factorized form\n   cp_tensor = random.random_tensor(shape=(3, 4, 2), rank='same')\n\nYou can also create tensors in TT-format, Tucker, etc, see `random tensors \u003Chttp:\u002F\u002Ftensorly.org\u002Fstable\u002Fmodules\u002Fapi.html#module-tensorly.random>`_.\n\nSetting the backend\n-------------------\n\nYou can change the backend to perform computation with a different framework. By default, the backend is NumPy, but you can also perform the computation using  PyTorch, TensorFlow, JAX, CuPy or Paddle (requires to have installed them first). For instance, after setting the backend to PyTorch, all the computation is done by PyTorch, and tensors can be created on GPU:\n\n.. code:: python\n\n   tl.set_backend('pytorch') # Or 'numpy', 'tensorflow', 'cupy' or 'jax'\n   tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), device='cuda:0')\n   type(tensor) # torch.Tensor\n   \n\nTensor decomposition\n--------------------\n\nApplying tensor decomposition is easy:\n\n.. code:: python\n\n   from tensorly.decomposition import tucker\n   # Apply Tucker decomposition \n   tucker_tensor = tucker(tensor, rank=[2, 2, 2])\n   # Reconstruct the full tensor from the decomposed form\n   tl.tucker_to_tensor(tucker_tensor)\n   \nWe have `many more decompositions \u003Chttp:\u002F\u002Ftensorly.org\u002Fstable\u002Fmodules\u002Fapi.html#module-tensorly.decomposition>`_ available, be sure to check them out!\n\nNext steps\n----------\nThis is just a very quick introduction to some of the basic features of TensorLy. \nFor more information on getting started, checkout the `user-guide \u003Chttp:\u002F\u002Ftensorly.org\u002Fdev\u002Fuser_guide\u002Findex.html>`_  and for a detailed reference of the functions and their documentation, refer to\nthe `API \u003Chttp:\u002F\u002Ftensorly.org\u002Fdev\u002Fmodules\u002Fapi.html>`_   \n\nIf you see a bug, open an `issue \u003Chttps:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues>`_, or better yet, a `pull-request \u003Chttps:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpulls>`_!\n  \n--------------------------\n\nContributing code\n=================\n\nAll contributions are welcome! So if you have a cool tensor method you want to add, if you spot a bug or even a typo or mistake in the documentation, please report it, and even better, open a Pull-Request on `GitHub \u003Chttps:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002F>`_.\n\nBefore you submit your changes, you should make sure your code adheres to our style-guide. The easiest way to do this is with `black`:  \n\n.. code:: bash\n\n   pip install black\n   black .\n\n\nRunning the tests\n=================\n\nTesting and documentation are an essential part of this package and all functions come with uni-tests and documentation.\n\nThe tests are ran using the `pytest` package. \nFirst install `pytest`::\n\n    pip install pytest\n    \nThen to run the test, simply run, in the terminal:\n\n.. code::\n\n   pytest -v tensorly\n   \nAlternatively, you can specify for which backend you wish to run the tests:\n\n.. code::\n   \n   TENSORLY_BACKEND='numpy' pytest -v tensorly\n \n\n------------------\n\nCiting\n======\n\nIf you use TensorLy in an academic paper, please cite [1]_::\n\n    @article{tensorly,\n      author  = {Jean Kossaifi and Yannis Panagakis and Anima Anandkumar and Maja Pantic},\n      title   = {TensorLy: Tensor Learning in Python},\n      journal = {Journal of Machine Learning Research},\n      year    = {2019},\n      volume  = {20},\n      number  = {26},\n      pages   = {1-6},\n      url     = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv20\u002F18-277.html}\n    }\n    \n    \n.. [1] Jean Kossaifi, Yannis Panagakis, Anima Anandkumar and Maja Pantic, **TensorLy: Tensor Learning in Python**, *Journal of Machine Learning Research (JMLR)*, 2019, volume 20, number 26.\n",".. image:: https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftensorly.svg\n    :target: https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftensorly\n\n.. image:: https:\u002F\u002Fanaconda.org\u002Ftensorly\u002Ftensorly\u002Fbadges\u002Fversion.svg   \n    :target: https:\u002F\u002Fanaconda.org\u002Ftensorly\u002Ftensorly\n\n.. image:: https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main\n    :target: https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Factions\u002Fworkflows\u002Ftest.yml\n\n.. image:: https:\u002F\u002Fcodecov.io\u002Fgh\u002Ftensorly\u002Ftensorly\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=mnZ234sGSA\n    :target: https:\u002F\u002Fcodecov.io\u002Fgh\u002Ftensorly\u002Ftensorly\n\n.. image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSlack-join-brightgreen\n    :target: https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ftensorly\u002Fshared_invite\u002Fzt-wqnts2sk-wbiRX6ml~Xt6~GDYWRPFfg\n\n\n========\nTensorLy\n========\n   \n\nTensorLy 是一个 Python 库，旨在使张量学习变得简单易用。它能够轻松地进行张量分解、张量学习和张量代数运算。其后端系统支持无缝地使用 NumPy、PyTorch、JAX、TensorFlow、CuPy 或 Paddle 进行计算，并且可以在 CPU 或 GPU 上大规模运行相关方法。\n\n- **官网:** https:\u002F\u002Ftensorly.org\n- **源代码:**  https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\n- **Jupyter 笔记本:** https:\u002F\u002Fgithub.com\u002FJeanKossaifi\u002Ftensorly-notebooks\n\n----------------------------\n\n安装 TensorLy\n===================\n\n唯一的先决条件是已安装 **Python 3**。最简单的方式是通过 `Anaconda 发行版 \u003Chttps:\u002F\u002Fwww.anaconda.com\u002Fdownload\u002F>`_。\n\n+-------------------------------------------+---------------------------------------------------+\n|      **使用 pip**（推荐）           |         **使用 conda**                            |\n+-------------------------------------------+---------------------------------------------------+\n|                                           |                                                   |\n| .. code::                                 | .. code::                                         |\n|                                           |                                                   |\n|   pip install -U tensorly                 |   conda install -c tensorly tensorly              |\n|                                           |                                                   |\n|                                           |                                                   |\n+-------------------------------------------+---------------------------------------------------+\n|                               **开发版本（从 git 克隆）**                                      |\n+-------------------------------------------+---------------------------------------------------+\n|                                                                                               |\n|          .. code::                                                                            |\n|                                                                                               |\n|             # 克隆仓库                                                                        |\n|             git clone https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly                                    |\n|             cd tensorly                                                                       |\n|             # 使用 `-e` 或等价的 `--editable` 以可编辑模式安装                                |\n|             pip install -e .                                                                  |\n|                                                                                               |\n+-----------------------------------------------------------------------------------------------+  \n \n**注意:** TensorLy 默认依赖 NumPy。如果希望使用其他后端，则需要单独安装相应的库。\n\n有关详细说明，请参阅 `文档 \u003Chttp:\u002F\u002Ftensorly.org\u002Fdev\u002Finstallation.html>`_。\n\n------------------\n\n快速入门\n==========\n\n创建张量\n----------------\n\n从 NumPy 数组创建一个 3×4×2 的小型三阶张量，并对其进行简单操作：\n\n.. code:: python\n\n   import tensorly as tl\n   import numpy as np\n\n\n   tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), dtype=tl.float64)\n   unfolded = tl.unfold(tensor, mode=0)\n   tl.fold(unfolded, mode=0, shape=tensor.shape)\n\n\n你也可以创建随机张量：\n\n.. code:: python\n\n   from tensorly import random\n   \n   # 随机张量\n   tensor = random.random_tensor((3, 4, 2))\n   # 因子分解形式的随机 CP 张量\n   cp_tensor = random.random_tensor(shape=(3, 4, 2), rank='same')\n\n此外，还可以创建 TT 格式、Tucker 等格式的张量，详情请参阅 `随机张量 \u003Chttp:\u002F\u002Ftensorly.org\u002Fstable\u002Fmodules\u002Fapi.html#module-tensorly.random>`_。\n\n设置后端\n-------------------\n\n你可以更改后端，以便使用不同的框架进行计算。默认情况下，后端为 NumPy，但你也可以使用 PyTorch、TensorFlow、JAX、CuPy 或 Paddle 进行计算（需提前安装这些库）。例如，将后端设置为 PyTorch 后，所有计算都将由 PyTorch 完成，张量也可以在 GPU 上创建：\n\n.. code:: python\n\n   tl.set_backend('pytorch') # 或 'numpy', 'tensorflow', 'cupy' 或 'jax'\n   tensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), device='cuda:0')\n   type(tensor) # torch.Tensor\n   \n\n张量分解\n--------------------\n\n应用张量分解非常容易：\n\n.. code:: python\n\n   from tensorly.decomposition import tucker\n   # 应用 Tucker 分解 \n   tucker_tensor = tucker(tensor, rank=[2, 2, 2])\n   # 从分解形式重建完整张量\n   tl.tucker_to_tensor(tucker_tensor)\n   \n我们还提供了 `更多分解方法 \u003Chttp:\u002F\u002Ftensorly.org\u002Fstable\u002Fmodules\u002Fapi.html#module-tensorly.decomposition>`_，欢迎查阅！\n\n后续步骤\n----------\n以上只是对 TensorLy 一些基本功能的简要介绍。\n如需了解更多入门信息，请查看 `用户指南 \u003Chttp:\u002F\u002Ftensorly.org\u002Fdev\u002Fuser_guide\u002Findex.html>`_；如需函数及其文档的详细参考，请参阅\n`API 文档 \u003Chttp:\u002F\u002Ftensorly.org\u002Fdev\u002Fmodules\u002Fapi.html>`_   \n\n如果您发现任何错误，请提交 `问题 \u003Chttps:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues>`_，或者更好的是，直接提交 `拉取请求 \u003Chttps:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpulls>`_！\n  \n--------------------------\n\n贡献代码\n=================\n\n我们欢迎所有贡献！如果您有一个很棒的张量方法想要添加，或者发现了 bug，甚至是文档中的错别字或错误，请及时报告，更理想的做法是在 `GitHub \u003Chttps:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002F>` 上提交拉取请求。\n\n在提交更改之前，您应该确保代码符合我们的编码规范。最简单的方法是使用 `black` 工具：  \n\n.. code:: bash\n\n   pip install black\n   black .\n\n\n运行测试\n=================\n\n测试和文档是本项目的重要组成部分，所有函数都附带单元测试和文档。\n\n测试使用 `pytest` 包运行。  \n首先安装 `pytest`::\n\n    pip install pytest\n    \n然后，在终端中运行以下命令即可执行测试：\n\n.. code::\n\n   pytest -v tensorly\n   \n或者，你也可以指定要针对哪个后端运行测试：\n\n.. code::\n   \n   TENSORLY_BACKEND='numpy' pytest -v tensorly\n \n\n------------------\n\n引用\n======\n\n如果你在学术论文中使用了 TensorLy，请引用 [1]_::\n\n    @article{tensorly,\n      author  = {Jean Kossaifi 和 Yannis Panagakis 和 Anima Anandkumar 和 Maja Pantic},\n      title   = {TensorLy：Python 中的张量学习},\n      journal = {机器学习研究期刊},\n      year    = {2019},\n      volume  = {20},\n      number  = {26},\n      pages   = {1-6},\n      url     = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv20\u002F18-277.html}\n    }\n    \n    \n.. [1] Jean Kossaifi、Yannis Panagakis、Anima Anandkumar 和 Maja Pantic，《TensorLy：Python 中的张量学习》，《机器学习研究期刊（JMLR）》，2019 年，第 20 卷，第 26 号。","# TensorLy 快速上手指南\n\nTensorLy 是一个旨在让张量学习变得简单易懂的 Python 库。它支持轻松的张量分解、张量学习和张量代数运算。其独特的后端系统允许你无缝切换使用 NumPy、PyTorch、JAX、TensorFlow、CuPy 或 Paddle 进行计算，并支持在 CPU 或 GPU 上大规模运行。\n\n## 环境准备\n\n*   **操作系统**：Linux, macOS, Windows\n*   **Python 版本**：Python 3.x\n*   **前置依赖**：\n    *   默认依赖：**NumPy**（安装 TensorLy 时会自动安装）。\n    *   可选后端：若需使用 PyTorch、TensorFlow、JAX、CuPy 或 Paddle 作为计算后端，请预先单独安装对应的框架包。\n\n> **提示**：国内用户建议使用 Anaconda 发行版管理环境，或使用 `pip` 配合国内镜像源（如清华源、阿里源）以加速安装。\n\n## 安装步骤\n\n你可以选择以下任意一种方式进行安装：\n\n### 方式一：使用 pip 安装（推荐）\n\n```bash\npip install -U tensorly\n```\n\n*国内加速示例（使用清华源）：*\n```bash\npip install -U tensorly -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：使用 conda 安装\n\n```bash\nconda install -c tensorly tensorly\n```\n\n### 方式三：开发模式安装（从源码）\n\n如果你需要修改源码或贡献代码：\n\n```bash\n# 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\ncd tensorly\n\n# 以可编辑模式安装\npip install -e .\n```\n\n## 基本使用\n\n### 1. 创建张量与基础运算\n\n默认情况下，TensorLy 使用 NumPy 作为后端。以下示例展示如何创建张量并进行展开（unfold）和折叠（fold）操作：\n\n```python\nimport tensorly as tl\nimport numpy as np\n\n# 创建一个 3x4x2 的三阶张量\ntensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), dtype=tl.float64)\n\n# 沿模式 0 展开张量\nunfolded = tl.unfold(tensor, mode=0)\n\n# 将展开后的张量折叠回原始形状\nreconstructed = tl.fold(unfolded, mode=0, shape=tensor.shape)\n```\n\n### 2. 切换计算后端\n\nTensorLy 的核心优势在于可以灵活切换后端。例如，切换到 **PyTorch** 并在 GPU 上进行计算：\n\n```python\nimport tensorly as tl\nimport numpy as np\n\n# 设置后端为 pytorch (也可设为 'tensorflow', 'jax', 'cupy' 等)\ntl.set_backend('pytorch')\n\n# 创建张量并指定设备为 CUDA\ntensor = tl.tensor(np.arange(24).reshape((3, 4, 2)), device='cuda:0')\n\n# 验证类型，此时应为 torch.Tensor\nprint(type(tensor)) \n```\n\n### 3. 张量分解\n\n执行张量分解非常简单。以下示例演示了 **Tucker 分解**：\n\n```python\nfrom tensorly.decomposition import tucker\nimport tensorly as tl\n\n# 假设 tensor 已经定义\n# 应用 Tucker 分解，设定秩为 [2, 2, 2]\ntucker_tensor = tucker(tensor, rank=[2, 2, 2])\n\n# 从分解形式重构完整张量\nfull_tensor = tl.tucker_to_tensor(tucker_tensor)\n```\n\n更多分解方法（如 CP 分解、TT 格式等）及详细 API 文档，请访问 [TensorLy 官方文档](http:\u002F\u002Ftensorly.org)。","某推荐系统算法团队正在处理包含“用户 - 商品 - 时间”三维关系的海量稀疏数据，试图通过张量分解挖掘潜在的隐性特征以提升点击率预测精度。\n\n### 没有 tensorly 时\n- **框架绑定严重**：若团队从 NumPy 迁移至 PyTorch 以利用 GPU 加速，必须手动重写所有矩阵运算和分解逻辑，代码复用率极低。\n- **高阶数据处理困难**：面对三阶及以上张量，需自行推导并实现复杂的 CP 或 Tucker 分解公式，极易因维度对齐错误导致模型不收敛。\n- **资源扩展受限**：难以灵活切换计算后端，无法在不修改核心算法的前提下，轻松将任务从 CPU 单机运行扩展到多卡 GPU 集群。\n- **调试成本高昂**：缺乏统一的张量代数接口，不同后端间的数值差异排查耗时耗力，阻碍了快速迭代验证。\n\n### 使用 tensorly 后\n- **后端无缝切换**：仅需一行代码设置 `set_backend('pytorch')` 或 `'tensorflow'`，即可在 NumPy、PyTorch、JAX 等主流框架间自由切换，无需改动算法逻辑。\n- **开箱即用分解**：直接调用封装好的 `parafac` 或 `tucker` 函数，自动处理高阶张量的复杂运算与梯度回传，大幅降低数学实现门槛。\n- **弹性算力支持**：依托其统一后端系统，可平滑地将训练任务从本地 CPU 迁移至云端 GPU，轻松应对大规模数据计算需求。\n- **开发效率倍增**：标准化的张量操作接口消除了框架差异带来的噪音，让团队能专注于业务逻辑优化而非底层算子调试。\n\ntensorly 通过屏蔽底层框架差异并提供高阶张量原语，让多维数据建模变得像处理普通矩阵一样简单高效。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftensorly_tensorly_63a205f7.png","TensorLy","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftensorly_d978ab61.png","Tensor Learning in Python.",null,"http:\u002F\u002Ftensorly.org","https:\u002F\u002Fgithub.com\u002Ftensorly",[79,83,87],{"name":80,"color":81,"percentage":82},"Python","#3572A5",99.8,{"name":84,"color":85,"percentage":86},"Shell","#89e051",0.2,{"name":88,"color":89,"percentage":90},"Makefile","#427819",0.1,1672,300,"2026-04-01T08:03:12","NOASSERTION",1,"","非必需。支持通过 CuPy、PyTorch、TensorFlow、JAX 或 Paddle 后端在 GPU 上运行，具体显卡型号、显存及 CUDA 版本取决于所选后端框架的要求。","未说明",{"notes":100,"python":101,"dependencies":102},"默认后端为 NumPy。若需使用 PyTorch、TensorFlow、JAX、CuPy 或 Paddle 等其他后端，需单独安装对应框架。推荐使用 Anaconda 分布版进行安装和管理。开发模式下需安装 pytest 和 black 以运行测试和格式化代码。","3+",[103],"numpy",[14],[106,107,108,109,64,110,111,112,113,114,115,116,117,103,118,119,120,121],"machine-learning","tensor","decomposition","tensor-algebra","tensor-learning","python","tensor-methods","pytorch","mxnet","jax","tensorflow","cupy","tensor-decomposition","tensor-factorization","tensor-regression","regression","2026-03-27T02:49:30.150509","2026-04-07T16:49:23.230899",[125,130,135,140,145,149],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},22384,"如何在 TensorLy 中使用稀疏张量（Sparse Tensors）？","TensorLy 通过 `tensorly.contrib.sparse` 模块支持稀疏张量。您不需要切换后端，而是直接使用 `sparse` 库（如 `sparse.COO`）创建数组，然后将其传递给 `tensorly.contrib.sparse` 中的相应函数。例如：\n1. 安装 sparse 库：`pip install sparse`\n2. 创建稀疏张量：`import sparse; s = sparse.COO(...)`\n3. 使用稀疏分解：`from tensorly.contrib import sparse as tl_sparse; factors = tl_sparse.parafac(s, rank=...)`\n注意：确保输入是稀疏格式，以避免内存溢出。","https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues\u002F65",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},22385,"运行 Tucker 分解时遇到 'ValueError: On entry to SGESDD parameter number 10 had an illegal value' 错误怎么办？","该错误通常由两个原因引起：\n1. **数值溢出**：输入张量中的值过大，平方后超出 `np.float64` 范围。解决方法是对数据进行归一化（减去均值并除以标准差），或将值裁剪到 `np.sqrt(np.finfo(np.float64).max)` 以下。\n2. **数据过于稀疏**：如果张量大部分为零，高阶 SVD 可能无法工作。建议将数据转换为稀疏格式（使用 `sparse.COO`），并使用 `tensorly.contrib.sparse` 中的稀疏分解方法。","https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues\u002F125",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},22386,"为什么对稀疏 COO 数组进行非负 PARAFAC 分解时会报 'TypeError: no implementation found for numpy.moveaxis\u002Fshape' 错误？","这通常是因为环境版本过旧或使用了错误的函数路径。解决方案如下：\n1. **更新代码**：确保您使用的是 TensorLy 的最新版（Master 分支），相关错误已在后续版本中修复。\n2. **使用正确的模块**：务必从 `tensorly.contrib.sparse` 导入分解函数，而不是主命名空间。例如：`from tensorly.contrib.sparse import parafac`。\n3. **检查内存**：如果错误消失但内存爆炸，可能是因为重构后的张量变得稠密。可以尝试在 `kruskal_to_tensor` 等函数中增加阈值处理，过滤极小值以保持稀疏性。","https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues\u002F131",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},22387,"TensorLy 是否支持正则化张量分解（如 L1 正则化以获得稀疏因子）？","是的，TensorLy 已支持正则化张量分解。您可以使用带有正则化参数的分解算法（如正则化的交替最小二乘法）来获得稀疏的 PARAFAC 因子。这不同于“稀疏张量的分解”，而是指“对稠密张量进行分解并得到稀疏结果”。请在最新的文档或分解函数参数中查找 `regularization` 或 `l1_reg` 等相关选项。","https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues\u002F169",{"id":146,"question_zh":147,"answer_zh":148,"source_url":134},22388,"如何处理因输入张量数值过大导致的分解计算溢出问题？","当输入张量元素平方后超过 `np.float64` 的最大值时会发生溢出。推荐的预处理步骤包括：\n1. **数据裁剪**：将输入值限制在 `np.sqrt(np.finfo(np.float64).max)` 以内。\n2. **标准化**：对输入张量进行标准化处理（减去均值，除以标准差）。\n3. **使用稀疏格式**：如果数据本身很稀疏，转换为 `sparse.COO` 格式并使用稀疏后端可以避免不必要的稠密计算和溢出风险。",{"id":150,"question_zh":151,"answer_zh":152,"source_url":129},22389,"TensorLy 的后端机制是如何支持稀疏张量的？是否需要单独设置后端？","不需要单独设置 'sparse' 后端。TensorLy 的重构后端机制允许 `tensorly.contrib.sparse` 模块根据当前激活的后端（如 NumPy）自动适配。您只需：\n1. 保持默认后端（如 `tl.set_backend('numpy')`）。\n2. 传入 `sparse` 库创建的张量对象（如 `sparse.COO`）。\n3. 调用 `tensorly.contrib.sparse` 下的函数。\n系统会自动处理底层调度，无需显式传递后端参数。",[154,159,164,169,174,179],{"id":155,"version":156,"summary_zh":157,"released_at":158},136124,"0.9.0","本次最新发布带来了多项改进和新功能，并将 Python 支持版本更新至 3.9 至 3.13。\n\n## 新的 Paddle 后端\n[PaddlePaddle](https:\u002F\u002Fwww.paddlepaddle.org.cn\u002Fen) 是一个与 PyTorch 类似的深度学习框架（无论是在功能还是 API 设计上）。用户可以利用其[动态图模式进行算法开发](https:\u002F\u002Fwww.paddlepaddle.org.cn\u002Fdocumentation\u002Fdocs\u002Fen\u002Fguides\u002Fbeginner\u002Ftensor_en.html)，随后借助 Paddle 提供的工具进行[模型导出](https:\u002F\u002Fwww.paddlepaddle.org.cn\u002Fdocumentation\u002Fdocs\u002Fen\u002Fguides\u002Finfer\u002Fpaddleslim\u002Fpaddle_slim_en.html)、模型压缩以及推理部署。Paddle 还与 ONNX 和 TensorRT 等推理库实现了深度集成。感谢 @HydrogenSulfate 的贡献，详见 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F565。\n\n## 包重组\n我们现在拥有一个名为 [`solvers`](https:\u002F\u002Ftensorly.org\u002Fdev\u002Fmodules\u002Fapi.html#solvers-tensorly-solvers) 的子模块，其中包含了所有与优化相关的代码，这要归功于 @cohenjer 的工作，详见 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F550。\n\n## 算法改进\nCP 回归现在支持多维输出，这一改进由 @merajhashemi 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F252 中实现。\n\n## 生活质量提升及其他变更\n文档得到了改进，单元测试也更加完善且可靠，同时我们对若干算法进行了小幅优化。\n\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F566 中添加了对数据结构和秩可行性的检查。\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F567 中修复了文档并移除了对 MXNet 的最后引用。\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F572 中实现了几乎所有测试在不同后端上的兼容性。\n* @JeanKossaifi 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fcommit\u002Fedd74d150bf46ad205005c8b0f773c6d625e81f5 中修复了文档中的徽章显示问题。\n* @HydrogenSulfate 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F573 中更新了 index.html 和金字塔 PNG 图片。\n* @characat0 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F574 中修复了后端错误信息中的 f-string 格式化问题。\n* @characat0 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F575 中为 Backend svd 添加了占位关键字参数，以便抛出更具信息量的错误。\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F576 中升级了 Python 版本。\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F564 中清理了 PARAFAC2 的容差设置。\n\n衷心感谢整个 TensorLy 团队以及所有贡献者：@aarmey、@cohenjer、@yngvem、@JeanKossaifi、@merajhashemi，还有我们的新成员 @HydrogenSulfate 和 @characat0。","2024-11-12T14:27:26",{"id":160,"version":161,"summary_zh":162,"released_at":163},136125,"0.8.2","## 0.8.2 新特性：\n\n我们很高兴地发布 TensorLy 0.8.2 版本。一如既往，衷心感谢核心团队和所有贡献者！\n\n此版本在 TensorLy 0.8 的基础上进行了多项改进，包括：\n\n### 基于 ALS 的张量环分解\n\n我们现在提供了基于 ALS 的张量环分解方法，以及基于随机采样的版本，这得益于 @OsmanMalik 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F501 和 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F511 中的贡献。\n\n### PARAFAC2 的重大改进\n\n* @MarieRoald 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F530 中实现了 PARAFAC2 的 SVD 压缩；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F525 中为 PARAFAC2 引入了 Bro 的线搜索；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F524 中优化了 PARAFAC2 的误差计算，避免在计算过程中重复投影 X；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F535 中对 NN-PARAFAC\u002FPARAFAC2 进行了小幅修复；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F539 中避免了在 SVD 初始化时进行大规模拼接操作；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F502 中提升了 PARAFAC2 的误差计算效率。\n\n### MXNet 已弃用\n\n我们现已正式弃用 MXNet 后端，MXNet 和 TensorFlow 后端都将在不久的将来被移除。\n\n### 更完善的 SVD 接口\n\n我们提供了一个简洁、清晰且易于使用的接口，用于调用 SVD 的各种主要变体，并且该接口仍在不断改进中！\n\n* @AtomicCactus 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F504 中修复了在 PyTorch 后端的 GPU 上使用 svd_flip() 时的问题；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F517 中还增加了从 make_svd_non_negative() 返回 H 的功能；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F536 中为 svd_compress_tensor_slices 添加了最大秩参数。\n\n### CP 的改进\n\n* @cyrillustan 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F492 中修复了 CP 部分最小二乘法；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F495 中将 Khatri-Rao 相关选项移至 tenalg 后端；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F549 中提供了 MTTKRP 的更快实现。\n\n### 其他变更及生活质量提升\n\n* @braun-steven 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F491 中添加了 logsumexp 函数；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F494 中添加了 MXNet 警告，并移除了旧的弃用提示；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F496 中移除了 Pf2 中的填充；\n* @Kiord 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F508 中更新了关于 SVD 缺失值插补的文档；\n* @aarmey 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F513 中进行了多项日常维护改进；\n* @SauravMaheshkar 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F514 中为 CI 添加了 `pip` 缓存功能；\n* @hello-fri-end 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F519 中修复了 initialize_tucker 函数；\n* @JeanKossaifi 在 https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fpull\u002F505 中改用了 math.pi；\n* 完全弃用","2024-06-09T17:29:20",{"id":165,"version":166,"summary_zh":167,"released_at":168},136126,"0.8.0","我们终于发布了期待已久的 TensorLy 新版本，其中包含大量重大改进、新功能、更完善的文档、错误修复以及整体使用体验的提升！\n\n## 新特性\n\n### 对 einsum 的透明支持\n\n实现张量代数运算主要有两种方式：\n1. 最常见的方式是利用现有的基于矩阵的代数方法，这通常涉及将张量“展开”（即将张量重塑为矩阵并重新排列其维度）。\n2. 直接利用张量收缩，例如通过 einsum 接口。这意味着 einsum 实际上执行的是张量收缩操作。\n\n我们改进了 tenalg 后端，现在可以将所有张量代数运算透明地调度到后端的 einsum 上：\n```python\nimport tensorly as tl\n# 张量代数模块\nfrom tensorly import tenalg\n\n# 将所有运算调度到 einsum\ntenalg.set_backend('einsum')\n```\n从此，所有 tenalg 函数都会在底层调用 einsum！\n\n#### Opt-Einsum 支持\n\n此外，对于每次 einsum 调用，现在可以使用 [opt-einsum](https:\u002F\u002Fdgasmith.github.io\u002Fopt_einsum\u002F) 来计算（近似）最优的收缩路径，并只需一次调用即可将其缓存：\n```python\n# 新的 opt-einsum 插件\nfrom tensorly.plugins import use_opt_einsum\n\n# 透明地使用 opt-einsum 计算并缓存收缩路径\nuse_opt_einsum('optimal')\n```\n\n要切换回原始后端的 einsum，可以这样做：\n```python\n# 新的 opt-einsum 插件\nfrom tensorly.plugins import use_default_einsum\n\nuse_default_einsum()\n```\n\n#### 使用 cuQuantum 在 GPU 上高效进行张量收缩\n\n如果你希望加速计算，那么使用 GPU 是一个不错的选择。TensorLy 已经通过 MXNet、CuPy、TensorFlow、PyTorch，以及最近的 JAX 等后端，长期支持 GPU 的透明使用。\n\n现在，你还可以借助 NVIDIA 的 [cuQuantum](https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuquantum-sdk) 库，在 GPU 上高效地执行张量收缩！\n```python\n# 将 `tenalg` 模块中的任何函数\n# 新的 cuQuantum 插件\nfrom tensorly.plugins import use_cuquantum\n\n# 透明地使用 cuQuantum 计算并缓存收缩路径\nuse_cuquantum('optimal')\n\n# 在 GPU 上创建一个新的张量\ntensor = tl.randn((32, 256, 256, 3), device='cuda')\n\n# 使用 CP 分解，保留 5% 的参数\nparafac(tensor, rank=0.05, init='random', n_iter_max=10)\n```\n\n### 相似性度量\n\n我们现在提供了 [CorrIndex](http:\u002F\u002Ftensorly.org\u002Fdev\u002Fmodules\u002Fmodules\u002Fgenerated\u002Ftensorly.metrics.correlation_index.html#tensorly.metrics.correlation_index)，这是一种对相关性不变的指标。\n* [论文](https:\u002F\u002Fwww.sciencedirect.com\u002Fscience\u002Farticle\u002Fabs\u002Fpii\u002FS0165168422000044)\n\n### CP-偏最小二乘回归\n\n此版本引入了一种新的多线性偏最小二乘回归方法，该方法最早由 Rasmus Bro 提出，并以方便的、类似 scikit-learn 的类 [`CP_PLSR`](http:\u002F\u002Ftensorly.org\u002Fdev\u002Fmodules\u002Fgenerated\u002Ftensorly.regression.CP_PLSR.html#tensorly.regression.CP_PLSR) 的形式公开。\n\n#","2023-01-15T00:40:26",{"id":170,"version":171,"summary_zh":172,"released_at":173},136127,"0.7.0","TensorLy 0.7.0 发布！\r\n================\r\n\r\n在 TensorLy 的这个新版本中，整个团队辛勤工作，为大家带来了诸多改进，从新的张量分解到新函数、更快的代码以及更完善的文档。\n\n主要改进与新特性\r\n=============================\r\n\r\n新的张量分解 \r\n----------------------\r\n\r\n我们新增了几种优秀的张量分解方法，包括\r\n\r\n* 耦合矩阵-张量分解：\r\n   [ CMTF-ALS #293 感谢 @IsabellLehmann 和 @aarmey ]\r\n* 张量环（例如具有周期性边界条件的 MPS）：\u2028\r\n   [ 张量环实现 #229 感谢 @merajhashemi ]\r\n* 基于分层 ALS 的非负 Tucker 分解：\u2028\r\n   [ NN-HALS Tucker @caglayantuna @cohenjer #254 ]\r\n* 一种新的 CP 分解，支持对每个模式施加多种约束，包括单调性、非负性、l1\u002Fl2 正则化、平滑性、稀疏性等！\r\n   [ 约束型 PARAFAC #284，感谢 @caglayantuna 和 @cohenjer ]\r\n\r\n全新功能\r\n--------------------\r\n\r\n我们新增了一个全新的 `tensordot`，支持批量操作！\r\n[ 添加新的批量张量点积 + API 简化 #309 ]\r\n\r\nTucker 因子的归一化，#283 感谢 @caglayantuna 和 @cohenjer！\r\n\r\n添加了一个便捷函数，用于计算 CP 张量与稠密张量之间差异范数的梯度，#294，感谢 @aarmey\r\n\r\n后端重构\r\n--------------------\r\n为了使 TensorLy 后端更加灵活和高效，我们对主后端以及张量代数后端进行了重构。在此过程中，我们还进行了一系列小的优化，显著提升了用户体验！特别是，现在重建 TT 矩阵的效率大大提高。\r\n[ 后端重构：使用 BackendManager 类，并将其直接用作 tensorly.backend 的 Module 类 #330，@JeanKossaifi ]\r\n\r\n增强功能\r\n===========\r\nParafac2 的改进（收敛准则等），#267，感谢 @marieRoald\r\nHALS 收敛问题修复待办事项，@marieRoald 和 @IsabellLehmann，#271\r\n确保面向对象 API 与函数式 API 之间的一致性，感谢 @yngvem，#268\r\n后端新增 lstsq 函数，#305，感谢 @merajhashemi\r\n修复函数与类名称不区分大小写时的冲突文档：https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly\u002Fissues\u002F219\r\n为 TT-cross 添加随机种子，#304 感谢 @yngvem\r\n修复 SVD 符号不确定性问题，#216，感谢 @merajhashemi\r\n重写了 von Neumann 熵函数，使其能够处理多维张量。#270，感谢 @taylorpatti\r\n添加检查以确保所有模式均为固定类型；如果是，则直接返回初始化结果，#325，感谢 @ParvaH\r\n我们现在提供一个 `prod` 函数，其功能类似于 math.prod，供使用 Python \u003C 3.8 的用户在 `tensorly.utils.prod` 中使用。\n\n新的后端函数\r\n==================\r\n所有后端现在都支持 `matmul`、`tensor dot` (#306)，以及 `sin`、`cos`、`flip`、`argsort`、`count_nonzero`、`cumsum`、`any`、`lstsq` 和 `trace`。\n\n错误修复\r\n=======\r\n修复了 NN-Tucker hals 稀疏系数问题，感谢 @cag","2021-11-08T13:27:59",{"id":175,"version":176,"summary_zh":177,"released_at":178},136128,"0.6.0","新内容\n=========\n\n此版本带来了大量新功能、改进，并修复了许多小 bug 和问题。我们为 TensorLy 项目的文档引入了一个全新主题——我们的新 [TensorLy Sphinx 主题](https:\u002F\u002Fgithub.com\u002Ftensorly\u002Ftensorly-sphinx-theme)，该主题已开源，您也可以轻松地在自己的项目中使用！此外，我们还将测试平台从 Travis 切换到了 GitHub Actions，并将代码覆盖率工具从 Coveralls 更换为 CodeCov。\n\n新特性\n--------------\n\n* 基于分层交替最小二乘法（HALS）的非负 CP 分解，感谢 @caglayantuna 和 @cohenjer，#224\n* 非负 SVD 及非负 CP 的重构，感谢 @aarmey，#204\n* 随机化 SVD，感谢 @merajhashemi，#215\n* CP 的符号校正方法，感谢 @aarmey，#226\n* 对复数张量的支持，感谢 @merajhashemi #213、#247\n* 熵度量，感谢 @taylorpatti，#231\n\n后端重构\n--------------------\n\n* 各种 SVD 形式现已与后端无关。\n* 范数方法也实现了后端无关。\n* CuPy 测试现已通过，感谢 @aarmey，#217\n* 随机数生成种子（check_random_state）已被移至后端，随机函数现默认使用 NumPy 的全局种子，感谢 @merajhashemi，#209、#212\n* 在 MXNet 后端中使用 mxnet.np 接口，感谢 @aarmey，#225、#207\n\nBug 修复与改进\n---------------------------------\n\n* PARAFAC2：修复了 SVD 初始化问题，并提升了命名一致性，感谢 @MarieRoald，#220\n* 改进了 CP 的初始化方法，感谢 @caglayantuna，#230\n* 改进了 `check_tucker_rank` 的测试\n* 支持一阶和二阶的 CP 张量以及 TT\u002FTTM 张量。\n* 修复了基于鲁棒张量幂迭代的 CP 方法中的问题，感谢 @chrisyeh96，#244\n* 在所有后端中增加了对 `tensordot` 的支持\n* 修复了 partial_tucker 在提供掩码且仅应用于部分模式时的问题，691f7859e9983981ec7820641a97ec0967acb9fe\n* 文档和用户指南的改进，切换到新主题，e328d8eb65e9a72e0cc469545f32efdba0da95c7\n\n还有许多其他小改进！","2021-04-14T11:15:07",{"id":180,"version":181,"summary_zh":182,"released_at":183},136129,"0.5.1","CP: l2 正则化\nCP: 稀疏性\n为 CP 和 Tucker 模型添加了 fixed_modes。\n掩码 Tucker 模型\n\n稀疏后端\n\n以及许多小的改进和错误修复！\n\n名称标准化：\nKruskal 张量现已更名为 cp_tensors。\n矩阵乘积态现已被重命名为张量链。\n\n秩选择：validate_cp_rank，新增设置 rank=‘same’ 或 rank=float 的选项，以自动确定秩。","2021-04-15T15:01:47"]