python中的压缩连续计算库

c3p的Python项目详细描述


压缩连续计算(c3)

< Buff行情>

使用函数计算

压缩连续计算(c3)包旨在使使用多维函数执行连续线性和多线性代数变得容易。它的工作原理是以低阶格式表示多维函数。常见的任务包括对向量或矩阵值函数进行"矩阵"分解、将函数相加或相乘、集成多维函数等等。以下是功能示例

  • 黑箱模型的自适应近似(指定为函数指针)
  • 从数据回归模型
  • 线性和非线性近似
  • 多项式、分段多项式、线性单元和径向基函数空间中的逼近
  • 通用自适应积分方案
  • 差异化
  • 乘法
  • 添加
  • 舍入
  • 计算雅可比数和黑森数
  • uq
    1. 期望和方差
    2. Sobol敏感性

除了上述c3包独有的功能外,我还有一些常规优化例程,包括

  • 高炉煤气
  • lbfgs
  • 梯度下降
  • 带adam的随机梯度

Doxygen提供了大多数功能的文档: http://alexgorodetsky.com/c3doc/html/

安装/入门

此代码的依赖项是

  1. 布拉斯
  2. 拉帕克
  3. swig(如果构建非c接口)

通常,这些依赖项可以通过系统的包管理器(apt、brew或port)安装。

来源

git clone https://github.com/goroda/Compressed-Continuous-Computation.git c3
cd c3
mkdir build
cd build
cmake ..
make

这将把所有共享库安装到c3/build/src中。主要的共享库是libc3,其余的都是子模块。要安装到特定位置,请使用

cmake .. -DCMAKE_INSTALL_PREFIX=/your/choice
make install

python接口

您可以使用pip实用程序通过

pip install pathlib
pip install c3py

可以在pyexamples子目录中获得一些示例

python pywrappers/pytest.py

另一种安装方法是下载git存储库,然后运行

python setup.py build
python setup.py install

一个工作流程是在一个新的虚拟环境中安装这个包。例如,使用conda可以运行以下命令(从c3目录中)

conda create -n c3pyenv python=3.7
conda activate c3pyenv
pip install numpy
python setup.py build
python setup.py install

配置选项

建立静态库

默认值:`off'

使用此选项可以切换是否应构建静态库或共享库。

注意:如果生成python包装器,则不能将此选项设置为"打开"

构建子库

默认值:`off'

使用此选项可以切换是否将每个子库构建到其自己的库中

构建测试

默认值:`off'

使用此选项可以切换是否生成单元测试

构建示例

默认值:`off'

使用此选项可以切换是否编译exampels

构建配置文件

默认值:`off'

使用此选项可以切换是否编译分析可执行文件

构建基准

默认值:`off'

使用此选项可以切换是否编译基准测试

构建实用程序

默认值:`off'

使用此选项可以切换是否编译实用程序

我在

上测试过的系统
  1. Mac OS X与Clang 8.0版
  2. 带有gcc 5.0版的ubuntu

解决一些可能的问题

错误:找不到"python.swg"

在Mac OS X上,如果使用

sudo port install swig

可能会出现上述错误。要纠正此错误,请安装swig python包

sudo port install swig-python

(在Mac OS X上)错误:未找到stdio.h

<这个哈出现在Mac OS X的某些更新版本上。要解决此问题,以下StackOverflow线程似乎可以工作

https://stackoverflow.com/questions/52509602/cant-compile-c-program-on-a-mac-after-upgrade-to-mojave

numpy错误

有时您可能会看到以下错误

_frozen_importlib:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216, got 192

git clone https://github.com/goroda/Compressed-Continuous-Computation.git c3
cd c3
mkdir build
cd build
cmake ..
make
0

我找到的一个解决这个问题的方法(https://stackoverflow.com/a/47975375" rel="nofollow">https://stackoverflow.com/a/47975375)是通过运行以下命令升级numpy。我真的不知道为什么这样做…

git clone https://github.com/goroda/Compressed-Continuous-Computation.git c3
cd c3
mkdir build
cd build
cmake ..
make
1

编码实践

我的目标是记录(使用doxygen)用户可用的每个功能,并提供一个单元测试。此外,我不会将代码推送到内存泄漏的主分支。如果遇到任何问题,我会不断地寻找更多的建议来提高代码的健壮性。

贡献

请打开github问题以询问问题、报告错误或请求功能。 若要投稿,请分叉存储库并设置分支。

作者:alex a.gorodetsky 联系方式:goroda@umich.edu 版权所有(c)2014-2016,麻省理工学院
版权所有(c)2016-2017,Sandia国家实验室
版权所有(c)2018,密歇根大学
许可证:BSD

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java同时读取输入流   安卓中的java短信监听   java你能帮我弄清楚如何在我的测验程序中组织数据吗?   列表中的java对   Java中的异常重复   通过SSH | Netbeans进行java远程调试   JAVAutil。扫描程序Java扫描程序在循环后读取整数失败?   用于温度转换器的构造函数java基本访问器方法   java如何将地图封装到自定义对象中   java更改布局不透明度,Progressbar除外   在REST中将java对象转换为XML时出错   java Spring引导IllegalArgumentException:找不到类[org.hibernate.cfg.ImprovedNamingStrategy]]   java Spring REST API,响应中的自定义实体字段   java数据库将null返回给布尔变量   mysql如何在java中将“'”转换为“`”