HyperLib: 在双曲空间中进行深度学习的开源库
2024-09-21 08:23:09作者:邬祺芯Juliet
1. 项目介绍
HyperLib 是一个开源的 Python 库,它使得在双曲空间中创建新一代的神经网络变得简单。与欧几里得空间相比,双曲空间具有更大的容量,能够容纳更广泛的数据类型。双曲几何特别适用于具有潜在层次结构的数据。此外,越来越多的研究证明,使用双曲模型而非欧几里得模型来模拟大脑具有优势。HyperLib 通过抽象复杂的数学运算,使得双曲网络与使用 pip 安装一样简单。
2. 项目快速启动
首先,您需要安装 HyperLib。推荐使用 pip 进行安装:
pip install hyperlib
以下是一个使用 Keras 创建双曲神经网络的简单例子:
import tensorflow as tf
from tensorflow import keras
from hyperlib.nn.layers.lin_hyp import LinearHyperbolic
from hyperlib.nn.optimizers.rsgd import RSGD
from hyperlib.manifold.poincare import Poincare
# 创建双曲层
hyperbolic_layer_1 = LinearHyperbolic(32, Poincare(), 1)
hyperbolic_layer_2 = LinearHyperbolic(32, Poincare(), 1)
output_layer = LinearHyperbolic(10, Poincare(), 1)
# 创建优化器
optimizer = RSGD(learning_rate=0.1)
# 创建模型结构
model = tf.keras.models.Sequential([
hyperbolic_layer_1,
hyperbolic_layer_2,
output_layer
])
# 编译模型
model.compile(
optimizer=optimizer,
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=[tf.keras.metrics.SparseCategoricalAccuracy()]
)
3. 应用案例和最佳实践
双曲空间的一个显著优势是它能有效地表示层次数据。以下是一个使用 HyperLib 将数据嵌入双曲空间的例子:
import numpy as np
from hyperlib.embedding.treerep import treerep
from hyperlib.embedding.sarkar import sarkar_embedding
# 示例:8种哺乳动物的免疫学距离
compressed_metric = np.array([
[32, 48, 51, 50, 48, 98, 148, 26],
[34, 29, 33, 84, 136, 42, 44, 44],
[92, 152, 44, 38, 86, 142, 42, 89],
[142, 42, 89, 142, 90, 142, 148]
])
# 输出一个加权网络图
tree = treerep(compressed_metric, return_networkx=True)
# 在2D双曲空间中嵌入树
root = 0
embedding = sarkar_embedding(tree, root, tau=0.5)
4. 典型生态项目
目前,双曲空间在深度学习中的应用还处于发展阶段,但已有一些项目开始探索和利用双曲空间的特性。以下是一些典型的生态项目:
- Hyperbolic Graph Convolutional Neural Networks:这是一种用于图数据的双曲神经网络,可以有效地处理具有层次结构的数据。
- Poincaré Embeddings for Learning Hierarchical Representations:这个项目使用 Poincaré 模型来学习层次表示,适用于有层次结构的复杂数据。
通过以上介绍,我们希望您能对 HyperLib 有了基本的了解,并开始尝试在双曲空间中进行深度学习。
登录后查看全文
热门项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
Baichuan-M3-235BBaichuan-M3 是百川智能推出的新一代医疗增强型大型语言模型,是继 Baichuan-M2 之后的又一重要里程碑。Python00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
539
3.76 K
Ascend Extension for PyTorch
Python
348
414
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
889
609
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
338
185
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
986
252
openGauss kernel ~ openGauss is an open source relational database management system
C++
169
233
暂无简介
Dart
778
193
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.34 K
758
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
114
140