PyTorch中的PyTorch-ProbGraph-分层概率图模型

2020-08-10 11:50:47

概率图是一个基于令人惊叹的Pytorch(https://pytorch.org)to)的库,易于使用和改编有向和无向分层概率图形模型。这些机器包括受限Boltzmann机器、深度信念网络、深度Boltzmann机器和HelmholtzMachines(Sigmoid信念网络)。

可以使用单元层、随机单元层以及这些单元层之间的交互,以模块化的方式建立模型。目前,只有高斯、分类和伯努利单元可用,但可以进行扩展以允许来自指数族的所有类型的分布。(参见https://en.wikipedia.org/wiki/Exponential_family)。

对于无方向模型,交互通常只是线性的,但可以从任意的PyTorch Torch.nn.Modules(使用向前和向后渐变)构建。

有一个预先实现的完全连接的InteractionLine,一个用于使用现有的torch.nn.Modules和一些自定义的交互/映射,以启用概率最大池(Probabilistic Max-Pooling)。交互也可以在没有IntermediateRandom UnitLayers的情况下与InteractionSequential连接。

这个图书馆是由Korbian Poeppel和Hendrik Elvers在慕尼黑理工大学的一个实践课程“超越深度学习-不确定性感知模型”中建造的。免责声明:它是PyTorch的扩展,没有直接附属关系。

使用Sphinx框架提供了更详细的文档。进入目录';docs';并运行';make html';(已安装Sphinx)。然后可以在_build子目录中找到文档。

这里有一些示例模型,以及使用examples文件夹中的EMNIST数据集的评估脚本。

该库可通过PyPI存储库访问,并可通过以下方式安装:pip install pytorch_prograph。

李洪乐等,用于分层表示的可扩展无监督学习的卷积深度信念网络,ICML09