gpu上线性算子的PyLops扩展。
pylops-gpu的Python项目详细描述
: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
- 项目
标签: