gpu上线性算子的PyLops扩展。

pylops-gpu的Python项目详细描述


PyLops-gpu

Build StatusAzureDevOps StatusDocumentation StatusOS-supportSlack Status

:vertical_traffic_light::vertical_traffic_light:此库正在早期开发中。 在v1.0.0版本之前,预计情况会不断变化。:垂直交通灯::垂直交通灯:

目的

此库是PyLops的扩展 在gpu上运行操作员。在

就像numpy和{a8}谎言一样多 作为父项目PyLops的核心,PyLops GPU大量构建在 PyTorch并利用相同的优化 使用gpu和cpu在PyTorch中用于深度学习的张量计算。在

这样,就可以在gpu上计算线性算子。在

下面是一个简单的示例,演示如何创建对角线运算符, 使用PyLops应用和反转:

importnumpyasnpfrompylopsimportDiagonaln=int(1e6)x=np.ones(n)d=np.arange(n)+1.Dop=Diagonal(d)# y = Dxy=Dop*x

同样使用PyLops gpu:

^{pr2}$

在启用了GPU的googlecolab中运行这两段代码可以得到50分+ 加速前进传球。在

作为Pythorch中实现Pyrops线性算子的副产品,我们可以很容易地 用任何非线性数学运算(如log,sin,tan,pow,…)连接我们的算子 以及来自torch.nn子模块的运算符并获得Automatic 整个链的微分(AD)。因为线性的梯度 {emm>只是实现了一个的伴随运算符, pylops_gpu.TorchOperator,它可以包装任何线性运算符 并返回一个torch.autograd.Function对象。在

项目结构

此存储库的组织如下:

  • pylops_gpu:包含各种gpu支持的线性运算符和辅助例程的python库
  • pytests:一组pytests
  • testdata:pytests和文档中使用的示例数据集
  • docs:sphinx文档
  • examples:使用sphinx gallery将每个线性运算符嵌入到文档中的一组python脚本示例
  • tutorials:使用sphinx gallery嵌入文档中的一组python脚本教程

入门

您需要Python 3.5或更高版本。在

来自PyPi

很快就要来了。。。在

来自Github

也可以直接从主节点安装

pip install git+https://git@github.com/equinor/pylops-gpu.git@master

贡献

想为项目做贡献吗?添加新操作员或教程?

按照PyLops official documentation中的说明操作。在

文件

PyLops gpu的官方文档here。在

访问此页面开始了解不同的操作员及其应用程序,以及如何 自己创建新的运算符并将其添加到Contributors列表中。在

此外,如果您已经使用developer environment安装了PyLops,您还可以通过 键入以下命令:

make doc

一旦创建了文档,您可以对源代码进行任何更改并通过 简单的打字

make docupdate

请注意,如果创建了新的示例或教程(以及对以前可用的示例或教程进行了任何更改) 您需要重新生成整个文档,然后才能看到更改。在

历史

PyLops GPU最初是编写的,目前由Equinor维护。 它是PyLops的扩展,用于大规模优化 GPU驱动的线性运算符可以根据我们的需要进行定制,并作为对自由软件社区的贡献。在

贡献者

  • 马特奥·拉瓦西,姆拉瓦西87

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

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务