跳转到主要内容

用于噪声信号的卷积字典学习。

项目描述

Build Status codecov

这是一个库,用于对时间序列数据进行平移不变性的稀疏字典学习,也称为卷积稀疏编码(CSC)。它包括多个不同的模型

  1. 一元CSC

  2. 多元CSC

  3. 具有秩-1约束的多元CSC [1]

  4. 具有alpha-stable分布的一元CSC [2]

这些模型的数学描述可在文档中找到

安装

要安装此软件包,最简单的方法是使用 pip。它将安装此软件包及其依赖项。由于 setup.py 需要依赖 numpycython 进行安装,因此建议您事先安装它们。要安装此软件包,请运行以下两个命令之一

(最新稳定版本)

pip install alphacsc

(开发版本)

pip install git+https://github.com/alphacsc/alphacsc.git#egg=alphacsc

(Dicodile后端)

pip install numpy cython
pip install alphacsc[dicodile]

要使用 dicodile 后端,别忘了设置 MPI_HOSTFILE 环境变量。

如果您没有计算机的管理权限,请使用 --user 标志与 pip。要升级,请使用 --upgrade 标志,该标志由 pip 提供。

要检查一切是否正常工作,您可以运行

python -c 'import alphacsc'

并且不应该出现任何错误消息。

快速入门

以下是一个示例,简要介绍API

import numpy as np
import matplotlib.pyplot as plt
from alphacsc import BatchCDL

# Define the different dimensions of the problem
n_atoms = 10
n_times_atom = 50
n_channels = 5
n_trials = 10
n_times = 1000

# Generate a random set of signals
X = np.random.randn(n_trials, n_channels, n_times)

# Learn a dictionary with batch algorithm and rank1 constraints.
cdl = BatchCDL(n_atoms, n_times_atom, rank1=True)
cdl.fit(X)

# Display the learned atoms
fig, axes = plt.subplots(n_atoms, 2, num="Dictionary")
for k in range(n_atoms):
    axes[k, 0].plot(cdl.u_hat_[k])
    axes[k, 1].plot(cdl.v_hat_[k])

axes[0, 0].set_title("Spatial map")
axes[0, 1].set_title("Temporal map")
for ax in axes.ravel():
    ax.set_xticklabels([])
    ax.set_yticklabels([])

plt.show()

Dicodile后端

AlphaCSC可以使用基于 dicodile 的后端来并行执行稀疏编码。

要安装 dicodile,请运行 pip install alphacsc[dicodile]

已知的OpenMPI问题

当自行安装 OpenMPI(例如在单机上运行 dicodile 或用于持续集成)时,运行 dicodile 求解器可能会导致死锁(长时间无输出)。这通常是由于工作者之间的通信问题。此问题通常可以通过禁用与 Docker 相关的虚拟 NIC 来解决,例如通过运行 export OMPI_MCA_btl_tcp_if_exclude="docker0"

错误报告

请使用 github 问题跟踪器 报告错误。

引用我们的工作

如果您在项目中使用了此代码,请考虑引用我们的工作

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分布

alphacsc-0.4.0.tar.gz (4.9 MB 查看散列值)

上传时间

构建分布

alphacsc-0.4.0-py3-none-any.whl (103.1 kB 查看散列值)

上传时间 Python 3

支持