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 有了基本的了解,并开始尝试在双曲空间中进行深度学习。
登录后查看全文
热门项目推荐
暂无数据
热门内容推荐
最新内容推荐
Degrees of Lewdity中文汉化终极指南:零基础玩家必看的完整教程Unity游戏翻译神器:XUnity Auto Translator 完整使用指南PythonWin7终极指南:在Windows 7上轻松安装Python 3.9+终极macOS键盘定制指南:用Karabiner-Elements提升10倍效率Pandas数据分析实战指南:从零基础到数据处理高手 Qwen3-235B-FP8震撼升级:256K上下文+22B激活参数7步搞定机械键盘PCB设计:从零开始打造你的专属键盘终极WeMod专业版解锁指南:3步免费获取完整高级功能DeepSeek-R1-Distill-Qwen-32B技术揭秘:小模型如何实现大模型性能突破音频修复终极指南:让每一段受损声音重获新生
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
540
3.77 K
Ascend Extension for PyTorch
Python
351
415
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
889
612
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
338
185
openJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力
TSX
987
253
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.35 K
758
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
115
141