[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-e3nn--e3nn":3,"tool-e3nn--e3nn":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 真正成长为懂上",144730,2,"2026-04-07T23:26:32",[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":75,"owner_url":76,"languages":77,"stars":82,"forks":83,"last_commit_at":84,"license":85,"difficulty_score":32,"env_os":74,"env_gpu":86,"env_ram":87,"env_deps":88,"category_tags":92,"github_topics":75,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":94,"updated_at":95,"faqs":96,"releases":126},5397,"e3nn\u002Fe3nn","e3nn","A modular framework for neural networks with Euclidean symmetry","e3nn 是一个专为构建具有欧几里得对称性（E(3) 等变）的神经网络而设计的模块化框架。在处理分子结构、晶体材料或 3D 点云等空间数据时，传统神经网络往往难以天然保持旋转和平移不变性，导致模型需要大量数据增强或泛化能力不足。e3nn 通过内置球谐函数、张量积等核心数学运算，让神经网络能够“理解”三维空间的几何变换规律，从而在数据量较少时也能实现高精度预测。\n\n该工具主要面向人工智能研究人员、计算化学家以及从事 3D 深度学习开发的工程师。其技术亮点在于基于 PyTorch 构建，提供了清晰的不可约表示（Irreps）接口，支持从标量到向量及高阶张量的灵活组合，并兼容 torch.compile 加速。代码示例显示，用户仅需几行代码即可定义符合物理对称性的线性层或张量积操作。作为开源项目，e3nn 不仅复现了多项经典论文算法，还持续更新以支持前沿研究，是探索几何深度学习不可或缺的基础设施。","# Euclidean neural networks\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fe3nn\u002Fe3nn\u002Fbadge.svg?branch=main)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fe3nn\u002Fe3nn?branch=main)\n[![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F237431920.svg)](https:\u002F\u002Fzenodo.org\u002Fbadge\u002Flatestdoi\u002F237431920)\n\n**[Documentation](https:\u002F\u002Fdocs.e3nn.org)** | **[Code](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn)** | **[CHANGELOG](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fblob\u002Fmain\u002F.github\u002FCHANGELOG.md)** | **[Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1Gps7mMOmzLe3Rt_b012xsz4UyuexTKAf?usp=sharing)**\n\nThe aim of this library is to help the development of [E(3)](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEuclidean_group) equivariant neural networks.\nIt contains fundamental mathematical operations such as [tensor products](https:\u002F\u002Fdocs.e3nn.org\u002Fen\u002Fstable\u002Fapi\u002Fo3\u002Fo3_tp.html) and [spherical harmonics](https:\u002F\u002Fdocs.e3nn.org\u002Fen\u002Fstable\u002Fapi\u002Fo3\u002Fo3_sh.html).\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fe3nn_e3nn_readme_f98f0a45c900.gif)\n\n```python\nimport torch\nfrom e3nn import o3\n\n# Create a random array made of scalar (0e) and a vector (1o)\nirreps_in = o3.Irreps(\"0e + 1o\")\nx = irreps_in.randn(-1)\n\n# Apply a linear layer\nirreps_out = o3.Irreps(\"2x0e + 2x1o\")\nlinear = o3.Linear(irreps_in=irreps_in, irreps_out=irreps_out)\ny = linear(x)\n\n# Compute a tensor product with itself\ntp = o3.FullTensorProduct(irreps_in1=irreps_in, irreps_in2=irreps_in)\nz = tp(x, x)\n\n# Optionally compile the tensor product\ntp_pt2 = torch.compile(tp, fullgraph=True)\nz_pt2 = tp_pt2(x, x) # Warning: First few calls might be slow due to compilation\ntorch.testing.assert_close(z, z_pt2)\n```\n\n## Installation\n\n**Important:** install pytorch and only then run the command\n\n```\npip install --upgrade pip\npip install --upgrade e3nn\n```\n\nFor details and optional dependencies, see [INSTALL.md](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fblob\u002Fmain\u002FINSTALL.md)\n\n### Breaking changes\ne3nn is under development.\nIt is recommended to install using pip. The main branch is considered as unstable.\nThe second version number is incremented every time a breaking change is made to the code.\n```\n0.(increment when backwards incompatible release).(increment for backwards compatible release)\n```\n\n## Help\nWe are happy to help! The best way to get help on `e3nn` is to submit a [Question](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002Fnew?assignees=&labels=question&template=question.md&title=%E2%9D%93+%5BQUESTION%5D) or [Bug Report](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002Fnew?assignees=&labels=bug&template=bug-report.md&title=%F0%9F%90%9B+%5BBUG%5D).\n\n## Want to get involved? Great!\nIf you want to get involved in and contribute to the development, improvement, and application of `e3nn`, introduce yourself in the [discussions](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fdiscussions\u002Fnew).\n\n## Code of conduct\nOur community abides by the [Contributor Covenant Code of Conduct](.\u002Fgithub\u002FCODE_OF_CONDUCT.md).\n\n## Citing\n\nIf you use e3nn in your research, please cite the following papers:\n\n### Euclidean Neural Networks:\n\n- N. Thomas et al., \"Tensor field networks: Rotation- and translation-equivariant neural networks for 3D point clouds\" (2018). [arXiv:1802.08219](https:\u002F\u002Farxiv.org\u002Fabs\u002F1802.08219)\n- M. Weiler et al., \"3D Steerable CNNs: Learning Rotationally Equivariant Features in Volumetric Data\" (2018). [arXiv:1807.02547](https:\u002F\u002Farxiv.org\u002Fabs\u002F1807.02547)\n- R. Kondor et al., \"Clebsch-Gordan Nets: a Fully Fourier Space Spherical Convolutional Neural Network\" (2018). [arXiv:1806.09231](https:\u002F\u002Farxiv.org\u002Fabs\u002F1806.09231)\n\n### e3nn:\n\n- M. Geiger and T. Smidt, \"e3nn: Euclidean Neural Networks\" (2022). [arXiv:2207.09453](https:\u002F\u002Farxiv.org\u002Fabs\u002F2207.09453)\n- M. Geiger et al., \"Euclidean neural networks: e3nn\" (2022). [Zenodo](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.6459381)\n\nFor BibTeX entries, please refer to the [CITATION.bib](CITATION.bib) file in this repository.\n\n### Copyright\n\nEuclidean neural networks (e3nn) Copyright (c) 2020, The Regents of the\nUniversity of California, through Lawrence Berkeley National Laboratory\n(subject to receipt of any required approvals from the U.S. Dept. of Energy),\nEcole Polytechnique Federale de Lausanne (EPFL), Free University of Berlin\nand Kostiantyn Lapchevskyi. All rights reserved.\n\nIf you have questions about your rights to use or distribute this software,\nplease contact Berkeley Lab's Intellectual Property Office at\nIPO@lbl.gov.\n\nNOTICE.  This Software was developed under funding from the U.S. Department\nof Energy and the U.S. Government consequently retains certain rights.  As\nsuch, the U.S. Government has been granted for itself and others acting on\nits behalf a paid-up, nonexclusive, irrevocable, worldwide license in the\nSoftware to reproduce, distribute copies to the public, prepare derivative\nworks, and perform publicly and display publicly, and to permit others to do so.\n","# 欧几里得神经网络\n[![覆盖率状态](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fe3nn\u002Fe3nn\u002Fbadge.svg?branch=main)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fe3nn\u002Fe3nn?branch=main)\n[![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F237431920.svg)](https:\u002F\u002Fzenodo.org\u002Fbadge\u002Flatestdoi\u002F237431920)\n\n**[文档](https:\u002F\u002Fdocs.e3nn.org)** | **[代码](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn)** | **[变更日志](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fblob\u002Fmain\u002F.github\u002FCHANGELOG.md)** | **[Colab](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1Gps7mMOmzLe3Rt_b012xsz4UyuexTKAf?usp=sharing)**\n\n本库旨在助力 [E(3)](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEuclidean_group) 等变神经网络的开发。它包含诸如 [张量积](https:\u002F\u002Fdocs.e3nn.org\u002Fen\u002Fstable\u002Fapi\u002Fo3\u002Fo3_tp.html) 和 [球谐函数](https:\u002F\u002Fdocs.e3nn.org\u002Fen\u002Fstable\u002Fapi\u002Fo3\u002Fo3_sh.html) 等基础数学运算。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fe3nn_e3nn_readme_f98f0a45c900.gif)\n\n```python\nimport torch\nfrom e3nn import o3\n\n# 创建由标量 (0e) 和向量 (1o) 组成的随机数组\nirreps_in = o3.Irreps(\"0e + 1o\")\nx = irreps_in.randn(-1)\n\n# 应用线性层\nirreps_out = o3.Irreps(\"2x0e + 2x1o\")\nlinear = o3.Linear(irreps_in=irreps_in, irreps_out=irreps_out)\ny = linear(x)\n\n# 计算与自身进行的张量积\ntp = o3.FullTensorProduct(irreps_in1=irreps_in, irreps_in2=irreps_in)\nz = tp(x, x)\n\n# 可选地编译该张量积\ntp_pt2 = torch.compile(tp, fullgraph=True)\nz_pt2 = tp_pt2(x, x) # 注意：首次调用可能因编译而较慢\ntorch.testing.assert_close(z, z_pt2)\n```\n\n## 安装\n\n**重要提示：** 请先安装 PyTorch，然后再运行以下命令：\n\n```\npip install --upgrade pip\npip install --upgrade e3nn\n```\n\n有关详细信息及可选依赖项，请参阅 [INSTALL.md](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fblob\u002Fmain\u002FINSTALL.md)。\n\n### 破坏性变更\ne3nn 目前仍在开发中。建议使用 pip 进行安装。主分支被视为不稳定版本。每当代码发生破坏性变更时，第二个版本号就会递增。\n```\n0.(每次不兼容发布时递增).(每次兼容发布时递增)\n```\n\n## 帮助\n我们非常乐意提供帮助！获取 `e3nn` 支持的最佳方式是提交一个 [问题](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002Fnew?assignees=&labels=question&template=question.md&title=%E2%9D%93+%5BQUESTION%5D) 或 [错误报告](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002Fnew?assignees=&labels=bug&template=bug-report.md&title=%F0%9F%90%9B+%5BBUG%5D)。\n\n## 想参与进来吗？太好了！\n如果您希望参与并贡献于 `e3nn` 的开发、改进和应用，请在 [讨论区](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fdiscussions\u002Fnew) 中自我介绍。\n\n## 行为准则\n我们的社区遵守 [贡献者契约行为准则](.\u002Fgithub\u002FCODE_OF_CONDUCT.md)。\n\n## 引用\n\n如果您在研究中使用了 e3nn，请引用以下论文：\n\n### 欧几里得神经网络：\n\n- N. Thomas 等人，“张量场网络：用于三维点云的旋转和平移等变神经网络”（2018年）。[arXiv:1802.08219](https:\u002F\u002Farxiv.org\u002Fabs\u002F1802.08219)\n- M. Weiler 等人，“3D 可转向 CNN：学习体积数据中的旋转等变特征”（2018年）。[arXiv:1807.02547](https:\u002F\u002Farxiv.org\u002Fabs\u002F1807.02547)\n- R. Kondor 等人，“克莱布什-高登网络：全傅里叶空间球面卷积神经网络”（2018年）。[arXiv:1806.09231](https:\u002F\u002Farxiv.org\u002Fabs\u002F1806.09231)\n\n### e3nn：\n\n- M. Geiger 和 T. Smidt，“e3nn：欧几里得神经网络”（2022年）。[arXiv:2207.09453](https:\u002F\u002Farxiv.org\u002Fabs\u002F2207.09453)\n- M. Geiger 等人，“欧几里得神经网络：e3nn”（2022年）。[Zenodo](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.6459381)\n\nBibTeX 条目请参考本仓库中的 [CITATION.bib](CITATION.bib) 文件。\n\n### 版权\n\n欧几里得神经网络（e3nn）版权 © 2020，归加利福尼亚大学董事会所有，经劳伦斯伯克利国家实验室（需获得美国能源部的必要批准）、洛桑联邦理工学院（EPFL）、柏林自由大学以及 Kostiantyn Lapchevskyi 共同拥有。保留所有权利。\n\n如您对使用或分发本软件的权利有任何疑问，请联系伯克利实验室知识产权办公室，邮箱地址为 IPO@lbl.gov。\n\n注意。本软件是在美国能源部资助下开发的，因此美国政府保留某些权利。据此，美国政府及其代表已获授予一项全球范围内、已付清费用、非独占、不可撤销的许可，允许其复制、向公众分发副本、制作衍生作品，并公开表演和展示本软件，同时也有权授权他人行使上述权利。","# e3nn 快速上手指南\n\ne3nn 是一个用于开发 **E(3) 等变神经网络**（Euclidean equivariant neural networks）的 Python 库。它提供了构建旋转和平移等变模型所需的基础数学运算，如张量积（tensor products）和球谐函数（spherical harmonics），特别适用于处理 3D 点云和体素数据。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：建议 Python 3.8 及以上\n*   **核心依赖**：必须预先安装 **PyTorch**。\n    *   请访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 获取适合您环境的安装命令。\n    *   *国内用户提示*：如果下载缓慢，可使用清华源或阿里源加速 PyTorch 安装（例如在 pip 命令后添加 `-i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`）。\n\n## 安装步骤\n\n**重要提示**：请务必先安装 PyTorch，然后再安装 e3nn。\n\n1.  升级 pip 工具（推荐）：\n    ```bash\n    pip install --upgrade pip\n    ```\n\n2.  安装 e3nn：\n    ```bash\n    pip install --upgrade e3nn\n    ```\n\n    *国内加速方案*：\n    ```bash\n    pip install --upgrade e3nn -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n> **注意**：e3nn 目前处于活跃开发中，主分支（main）可能不稳定。版本号格式为 `0.(不兼容更新).(兼容更新)`，建议通过 pip 安装稳定版本。如需更多可选依赖详情，请参考官方 [INSTALL.md](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fblob\u002Fmain\u002FINSTALL.md)。\n\n## 基本使用\n\n以下是最简单的代码示例，演示了如何定义不可约表示（Irreps）、创建线性层以及执行张量积运算。\n\n```python\nimport torch\nfrom e3nn import o3\n\n# 1. 创建由标量 (0e) 和向量 (1o) 组成的随机输入数组\nirreps_in = o3.Irreps(\"0e + 1o\")\nx = irreps_in.randn(-1)\n\n# 2. 应用一个线性层\nirreps_out = o3.Irreps(\"2x0e + 2x1o\")\nlinear = o3.Linear(irreps_in=irreps_in, irreps_out=irreps_out)\ny = linear(x)\n\n# 3. 计算与自身的张量积\ntp = o3.FullTensorProduct(irreps_in1=irreps_in, irreps_in2=irreps_in)\nz = tp(x, x)\n\n# 4. (可选) 编译张量积以加速 (基于 torch.compile)\ntp_pt2 = torch.compile(tp, fullgraph=True)\nz_pt2 = tp_pt2(x, x) # 警告：由于编译原因，前几次调用可能会较慢\ntorch.testing.assert_close(z, z_pt2)\n```\n\n### 下一步\n*   **完整文档**：访问 [docs.e3nn.org](https:\u002F\u002Fdocs.e3nn.org)\n*   **在线体验**：尝试官方提供的 [Google Colab 示例](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1Gps7mMOmzLe3Rt_b012xsz4UyuexTKAf?usp=sharing)\n*   **源码仓库**：[GitHub - e3nn\u002Fe3nn](https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn)","某材料科学团队正在构建深度学习模型，旨在从原子三维坐标中预测晶体材料的物理属性（如形成能或弹性模量）。\n\n### 没有 e3nn 时\n- **数据增强成本高昂**：为了教会模型理解“旋转不变性”，必须对同一晶体结构进行成千上万次随机旋转并重复训练，导致计算资源浪费严重。\n- **预测结果不稳定**：当输入数据的坐标系发生微小变化（如实验测量角度偏差）时，传统卷积神经网络的预测值会出现剧烈波动，缺乏物理一致性。\n- **特征工程复杂**：开发者需手动设计复杂的描述符（如球谐函数展开）来提取几何特征，代码实现极易出错且难以维护。\n- **泛化能力受限**：模型往往只能记住训练数据中的特定朝向，面对未见过的空间排列时，推理准确率大幅下降。\n\n### 使用 e3nn 后\n- **原生支持对称性**：e3nn 内置的欧几里得群（E(3)）等变层确保模型从数学底层就具备旋转和平移不变性，彻底无需人工数据增强。\n- **物理规律内嵌**：无论输入晶体如何旋转或平移，e3nn 输出的预测值保持严格一致，完美契合物理世界的客观规律。\n- **模块化开发高效**：利用 e3nn 提供的张量积和球谐函数模块，研究人员可直接搭建复杂的等变网络，将原本数周的算法开发周期缩短至几天。\n- **小样本高精度**：由于不再依赖海量增强数据，模型在少量真实实验数据上即可快速收敛，且在未知结构上的泛化表现显著提升。\n\ne3nn 通过将物理对称性直接编码进神经网络架构，让 AI 模型真正“理解”了三维空间的几何本质，实现了更高效、更可靠的科学发现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fe3nn_e3nn_f98f0a45.gif","Euclidean Neural Networks","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fe3nn_b13d36d3.png","",null,"https:\u002F\u002Fgithub.com\u002Fe3nn",[78],{"name":79,"color":80,"percentage":81},"Python","#3572A5",100,1238,179,"2026-04-06T19:50:21","NOASSERTION","未说明（基于 PyTorch，通常支持 CUDA GPU 加速，但 README 未明确具体型号或版本要求）","未说明",{"notes":89,"python":87,"dependencies":90},"必须先安装 PyTorch，然后再安装 e3nn。主分支被视为不稳定版本，建议使用 pip 安装稳定版。支持使用 torch.compile 进行编译加速，但首次调用可能因编译而较慢。详细依赖和可选组件请参阅项目中的 INSTALL.md 文件。",[91],"torch",[14,93],"其他","2026-03-27T02:49:30.150509","2026-04-08T13:59:08.954998",[97,102,107,112,116,121],{"id":98,"question_zh":99,"answer_zh":100,"source_url":101},24470,"如何在 e3nn 中为图网络指定标量边特征（scalar edge features）？","如果您需要在节点特征之外添加标量边特征，可以使用专门支持节点和边属性的网络模型。请参考官方文档中的 \"Network for a graph with node edge attributes\" 部分：https:\u002F\u002Fdocs.e3nn.org\u002Fen\u002Flatest\u002Fapi\u002Fnn\u002Fmodels\u002Fv2103.html#network-for-a-graph-with-node-edge-attributes。该模型允许您同时定义节点输入表示 (Rs_in) 和边输入表示。","https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002F212",{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},24471,"重新加载保存的模型时，是否需要重新计算 TensorProduct 的路径？如何避免？","在版本 0.4.2 及之后，这个问题已经得到修复。为了避免重新初始化时的计算开销，建议直接保存整个模型对象（使用 Python pickle，即 `torch.save(model, ...)`），而不是仅保存 `state_dict`。直接保存对象可以加载之前编译好的 TorchScript 代码二进制文件，而无需重新编译或重新计算路径。如果必须使用 `state_dict`，请确保 Wigner 矩阵已作为 buffer 存储，但请注意生成的代码本身通常不建议放入 state_dict。","https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002F292",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},24472,"为什么我的模型输出对旋转是等变的（equivariant），但潜在向量（latent vectors）却不是？","这通常是因为潜在空间的通道排列或类型定义不正确。确保您的潜在表示严格按照角动量量子数 L 的顺序排列：首先是所有标量（L=0），接着是所有向量（L=1），然后是张量（L=2）等。例如，如果有 22 个标量、3 个向量（9 个通道）和 1 个张量（5 个通道），则索引 [0:22] 应为 L0，[22:31] 应为 L1，[31:36] 应为 L2。如果顺序混乱或非连续，旋转操作将无法正确作用于对应的多极分量，导致长度变化或方向错误。","https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002F192",{"id":113,"question_zh":114,"answer_zh":115,"source_url":101},24473,"e3nn 和 e2cnn 库的主要区别是什么？为什么 e3nn 的文档看起来不如 e2cnn 完善？","这两个库的目标和挑战不同。e2cnn 主要关注计算机视觉任务（SO(2) 对称性），而 e3nn 服务于科学家群体（物理、化学、生物），处理的是 SO(3) 对称性及更复杂的数据类型（如原子点云）。从数学角度看，从 SO(2) 到 SO(3) 的跃迁引入了多维不可约表示（irreps），需要复杂的张量积（TensorProduct）操作，这不仅难以表述，也难以用原生 PyTorch 操作优化。因此，e3nn 团队将更多精力投入到核心数学运算的正确性和性能优化上，而非编写详尽的应用层文档。",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},24474,"如何实现输入因子可交换（commutative）的张量积，使得 tp(x, y) 与 tp(y, x) 具有对称性？","标准的 `FullyConnectedTensorProduct` 不保证权重对称，因此 `tp(x, y)` 不一定等于 `tp(y, x)`。如果需要严格的输入交换对称性（例如标量输出不应依赖输入顺序），目前的建议方案是在应用层手动对称化输出，即计算 `f(x, y) + f(y, x)`。虽然这会带来额外的计算开销和参数冗余，但在没有专用对称张量积类的情况下，这是确保物理对称性约束的有效方法。未来可能会引入带有 `symmetric_weights` 参数的新类来解决此问题。","https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002F412",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},24475,"在本地运行测试时遇到因列表排序不一致导致的失败，如何解决？","这是一个在 Python 3.7 中可能出现的兼容性问题，源于集合或列表排序的不确定性。可以通过在代码中显式地对基础列表进行多层排序来修复。具体的修复代码示例如下：`base = sorted([sorted([sorted(xs) for xs in x]) for x in base])`。确保数据在处理前具有确定的顺序可以避免此类非确定性错误。","https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fissues\u002F125",[127,132,137,142,147,152,157,162,167,172,177,182,187,192,197,202,207,212,217,222],{"id":128,"version":129,"summary_zh":130,"released_at":131},154084,"0.4.0","## [0.4.0] - 2021-10-05\r\n### Changed\r\n- Breaking change. normalization constants for `TensorProduct` and `Linear`. Now `Linear(2x0e + 7x0e, 0e)` is equivalent to `Linear(9x0e, 0e)`. Models with inhomogeneous multiplicities will be affected by this change!\r\n\r\n### Fixed\r\n- remove `profiler.record_function` calls that caused troubles with torchscript\r\n- the home made implementation of `radius_graph` was ignoring the argument `r_max`\r\n","2021-10-05T16:11:51",{"id":133,"version":134,"summary_zh":135,"released_at":136},154085,"0.3.5","## [0.3.5] - 2021-08-27\r\n### Fixed\r\n- `Extract` uses `CodeGenMixin` to avoid strange recursion errors during training\r\n- Add missing call to `normalize` in `axis_angle_to_quaternion`\r\n","2021-08-27T15:18:15",{"id":138,"version":139,"summary_zh":140,"released_at":141},154086,"0.3.4","## [0.3.4] - 2021-08-20\r\n### Fixed\r\n- `ReducedTensorProducts`: `normalization` and `filter_ir_mid` where not properly propagated through the recusive calls, this bug has no effects if the default values where used\r\n- Use `torch.linalg.eigh` instead of the deprecated `torch.symeig`\r\n\r\n### Added\r\n- (dev only) Pre-commit hooks that run pylint and flake8.  These catch some common mistakes\u002Fstyle issues.\r\n- classes to do `SO(3)` Grid transform (not fast) and Activation function using it\r\n- Add `f_in` and `f_out` to `o3.Linear`\r\n- `PBC` guide in the doc\r\n","2021-08-20T16:54:28",{"id":143,"version":144,"summary_zh":145,"released_at":146},154087,"0.3.3","## [0.3.3] - 2021-06-21\r\n### Changed\r\n- `FullyConnectedNet` is now a `torch.nn.Sequential`\r\n\r\n### Fixed\r\n- `BatchNorm` was not equivariant for pseudo-scalars\r\n\r\n### Added\r\n- `biases` argument to `o3.Linear`\r\n- `nn.models.v2106`: `MessagePassing` takes a sequence of irreps\r\n- `nn.models.v2106`: `Convolution` inpired from [Batch Normalization Biases Residual Blocks Towards the Identity Function in Deep Networks](`https:\u002F\u002Farxiv.org\u002Fpdf\u002F2002.10444.pdf`)\r\n","2021-06-21T12:05:56",{"id":148,"version":149,"summary_zh":150,"released_at":151},154088,"0.3.2","## [0.3.2] - 2021-06-10\r\n### Added\r\n- [`opt_einsum_fx`](https:\u002F\u002Fgithub.com\u002FLinux-cpp-lisp\u002Fopt_einsum_fx) as a dependency\r\n- `p=-1` option for `Irreps.spherical_harmonics(lmax, p)`\r\n\r\n### Removed\r\n- Removed `group\u002F_linalg` (`has_rep_in_rep` and `intertwiners`) (should use `equivariant-MLP` instead)\r\n","2021-06-10T21:34:03",{"id":153,"version":154,"summary_zh":155,"released_at":156},154069,"0.6.0","## 变更内容\n* @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F525 中实现了字典的 Pickle 序列化\n* @cw-tan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F527 中屏蔽了来自 PyTorch 2.10.0 的 TorchScript 警告信息\n* @cw-tan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F528 中修复了 Pt210 警告问题\n* @Mingzhe-Xuan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F529 中修正了 e3nn\\o3\\_spherical_harmonics.SphericalHarmonics 中 _lmax 的拼写错误\n* @cw-tan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F532 中增加了版本号\n* @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F533 中将版本号升级至 0.6.0\n\n## 新贡献者\n* @Mingzhe-Xuan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F529 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.9...0.6.0","2026-02-13T22:16:58",{"id":158,"version":159,"summary_zh":160,"released_at":161},154070,"0.5.9","## 变更内容\n* `Irreps` 类型标记，由 @cw-tan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F522 中完成\n* 版本号升级至 0.5.9，由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F523 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.8...0.5.9","2025-12-18T01:51:32",{"id":163,"version":164,"summary_zh":165,"released_at":166},154071,"0.5.8","## 变更内容\n* 由 @SimonWagnerHD 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F517 中移除了 `D_from_angles` 函数中对多重性的 `for` 循环。\n* 由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F518 中添加了线性切片的元数据。\n\n## 新贡献者\n* @SimonWagnerHD 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F517 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.7...0.5.8","2025-10-07T02:04:49",{"id":168,"version":169,"summary_zh":170,"released_at":171},154072,"0.5.7","## 变更内容\n* 修复了 `torch.compile` 下的 `soft_unit_step`。由 @ameya98 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F506 中完成。\n* 默认启用编译功能。由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F497 中完成。\n* 新增了 `e3nn.math.bessel`。由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F508 中完成。\n* 将 e3nn-jax 中的 `o3.Irreps.filter` 移植过来。由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F515 中完成。\n* 从 e3nn-jax 移植 `slice_by_mul`，并修复了 `filter` 中的 bug。由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F516 中完成。\n* 版本号升级至 0.5.7。由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F514 中完成。\n\n## 新贡献者\n* @ameya98 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F506 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.6...0.5.7","2025-09-04T00:33:30",{"id":173,"version":174,"summary_zh":175,"released_at":176},154073,"0.5.6","## 变更内容\n* 由 @cw-tan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F502 中进行重构\n* 由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F504 中将版本升级至 0.5.6\n\n## 新贡献者\n* @cw-tan 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F502 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.5...0.5.6","2025-03-22T20:33:22",{"id":178,"version":179,"summary_zh":180,"released_at":181},154074,"0.5.5","## 变更内容\n* 由 @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F500 中将版本号升级至 0.5.5\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.4.1...0.5.5","2025-02-02T23:07:11",{"id":183,"version":184,"summary_zh":185,"released_at":186},154075,"0.5.4.1","## 变更内容\n* @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F485 中添加的用于在 _spherical_harmonics 中关闭 jit 脚本的 hack\n* @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F494 中修复了 #493 问题\n* @lyuwen 在 e3nn.math._normalize_activation.moment 中显式指定了随机数生成器的设备放置\n* @Linux-cpp-lisp 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F484 中强制 `CodeGenMixin` 完全遵守 `e3nn.set_optimization_defaults`\n* @mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F498 中将 flake8 替换为 ruff\n\n## 新贡献者\n* @lyuwen 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F492 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.4...0.5.4.1","2025-02-01T16:13:04",{"id":188,"version":189,"summary_zh":190,"released_at":191},154076,"0.5.4","## 变更内容\n* PT2 编译与遗留代码：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F455 中完成\n* 版本修复：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F469 中完成\n* 更新已弃用的 Matplotlib 选项：@eszter137 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F475 中完成\n* 修复文档构建问题：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F476 中完成\n* 在发布流程中更新 PyPI 令牌：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F478 中完成\n* 更新引用格式以使 twine 兼容：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F479 中完成\n* 将测试中的 Python 版本升级至仅支持 3.11：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F487 中完成\n* 对 pyproject.toml 进行小幅调整以修复 PyPI 文档问题：@rmcconke 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F488 中完成\n* PyPI 发布 0.5.4：@mitkotak 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F489 中完成\n\n## 新贡献者\n* @eszter137 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F475 中完成了首次贡献\n* @rmcconke 在 https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F488 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fcompare\u002F0.5.2...0.5.4","2024-11-06T02:07:26",{"id":193,"version":194,"summary_zh":195,"released_at":196},154077,"0.5.2","# [0.5.2] - 2024-07-26\n\n## 新增\n\n- `o3.experimental.FullTensorProductv2 | ElementwiseTensorProductv2`，用于兼容 `torch.compile(..., fulgraph=True)`\n- 在 CI 中启用 pip 缓存\n- `_batchnorm.py` 中可选的标量偏置项\n\n## 变更\n\n- 重构以使用 `pyproject.toml` 进行打包\n- 重构 GitHub 社区文件\n- 将 pylint、coverage 和 flake8 的配置移至 `pyproject.toml`\n\n## 修复\n\n- 修复 TorchScript 警告“不支持实例级注解”（#437）","2024-07-27T03:01:58",{"id":198,"version":199,"summary_zh":200,"released_at":201},154078,"0.5.1","### 新增\n- L=12 的球谐函数\n\n### 修复\n- `TensorProduct.visualize` 现在即使张量积位于 GPU 上也能正常工作。\n- GitHub Actions 只有在 GitHub 秘密中设置了相应的令牌时，才会触发向 Coveralls 的推送。\n- 批归一化\n","2022-12-12T21:42:03",{"id":203,"version":204,"summary_zh":205,"released_at":206},154079,"0.5.0","## [0.5.0] - 2022-04-13\r\n### Added\r\n- Sparse Voxel Convolution\r\n- Clebsch-Gordan coefficients are computed via a change of basis from the complex to real basis. (see https:\u002F\u002Fgithub.com\u002Fe3nn\u002Fe3nn\u002Fpull\u002F341)\r\n- `o3`, `nn` and `io` are accessible through `e3nn`. For instance `e3nn.o3.rand_axis_angle`.\r\n\r\n### Changed\r\n- Since now the code is no more tested against `torch==1.8.0`, only tested against `torch>=1.10.0`\r\n\r\n### Fixed\r\n- `wigner_3j`  now _always_ returns a contiguous copy regardless of dtype or device\r\n","2022-04-13T19:24:07",{"id":208,"version":209,"summary_zh":210,"released_at":211},154080,"0.4.4","## [0.4.4] - 2021-12-15\r\n### Fixed\r\n- Remove `CartesianTensor._rtp`. Instead recompute the `ReducedTensorProduct` everytime. The user can save the `ReducedTensorProduct` to avoid creating it each time.\r\n- `*equivariance_error` no longer keeps around unneeded autograd graphs\r\n- `CartesianTensor` builds `ReducedTensorProduct` with correct device\u002Fdtype when called without one\r\n\r\n### Added\r\n- Created module for reflected imports allowing for nice syntax for creating `irreps`, e.g. `from e3nn.o3.irreps import l3o # same as Irreps(\"o3\")`\r\n- Add `uvu\u003Cv` mode for `TensorProduct`. Compute only the upper triangular part of the `uv` terms.\r\n- (beta) `TensorSquare`. computes `x \\otimes x` and decompose it.\r\n- `*equivariance_error` now tell you which arguments had which error\r\n\r\n### Changed\r\n- Give up the support of python 3.6, set `python_requires='>=3.7'` in setup\r\n- Optimize a little bit `ReducedTensorProduct`: solve linear system only once per irrep instead of 2L+1 times.\r\n- Do not scale line width by `path_weight` in `TensorProduct.visualize`\r\n- `*equivariance_error` now transforms its inputs in float64 by default, regardless of the dtype used for the calculation itself\r\n","2021-12-16T08:48:52",{"id":213,"version":214,"summary_zh":215,"released_at":216},154081,"0.4.3","## [0.4.3] - 2021-11-18\r\n### Fixed\r\n- `ReducedTensorProduct`: replace QR decomposition by `orthonormalize` the projector `X.T @ X`.\r\n  This keeps `ReducedTensorProduct` deterministic because the projectors and `orthonormalize` are both deterministic.\r\n  The output of `orthonormalize` apears also to be highly sparse (luckily).\r\n","2021-11-18T11:21:53",{"id":218,"version":219,"summary_zh":220,"released_at":221},154082,"0.4.2","## [0.4.2] - 2021-11-08\r\n\r\nThis release coupled with the release of `opt-einsum-fx=0.1.4` aim to fix slowness in the instantiation of `TensorProduct`.\r\nThe two main change that improved the instantiation time are\r\n- Turning off the compilation of `TensorProduct.right` by default\r\n- Replacing actual computation of `torch.einsum` and `torch.tensordot` by prediction of their output shape in the tracer used by `opt-einsum-fx` to collect tensor shapes \r\n\r\n### Added\r\n- `irrep_normalization` and `path_normalization` for `TensorProduct`\r\n- `compile_right` flag to `TensorProduct`\r\n- Add new global flag `jit_script_fx` to optionally turn off `torch.jit.script` of fx code\r\n\r\n","2021-11-08T09:41:23",{"id":223,"version":224,"summary_zh":225,"released_at":226},154083,"0.4.1","## [0.4.1] - 2021-10-29\r\n### Added\r\n- Add `to_cartesian()` to `CartesianTensor`\r\n\r\n### Fixed\r\n- make it work with `pytorch 1.10.0`\r\n","2021-10-30T15:46:07"]