探索深度学习的地震波传播:Deepwave

探索深度学习的地震波传播:Deepwave

deepwaveWave propagation modules for PyTorch.项目地址:https://gitcode.com/gh_mirrors/de/deepwave

项目简介

Deepwave是一款基于PyTorch的开源库,专为地震成像与反演设计,提供了波动力学模型的前向建模和后向传播功能。这个工具能够模拟波的传播以生成合成数据,进行反射波层析成像(RTM/LSRTM)、其他模型参数估计(全波形反演FWI)以及初始波场或源波let的计算。通过集成到更复杂的操作链中,Deepwave使得端到端的前向和后向传播变得轻而易举,让PyTorch的自动微分机制轻松处理复杂的梯度计算。

安装Deepwave非常简单,首先在PyTorch官网安装PyTorch,然后执行pip install deepwave即可。详细的使用方法和示例可以在官方文档中找到,也可以观看有关Deepwave的视频概览来快速上手。

技术解析

Deepwave支持二维常密度声学/标量波方程(常规和Born建模)以及二维弹性波方程(P-SV)。它可以运行在CPU和适当的GPU上,不仅能够计算最终波场和接收器数据相对于模型参数(如速度、散射势等)、初始波场和源振幅的梯度,而且使用了Pasalic和McGarry的PML方法实现准确的吸收边界,保证了在标量波传播器中的模拟精度。对于弹性波传播器,则采用了C-PML结合W-AFDA自由表面方法,使边界条件更加真实。

用户可以自定义有限差分的精度,独立设置每条边界的PML宽度,甚至在任意侧实现无PML的自由表面。此外,它还实现了局部提取功能,仅对当前需要传播的源和接收器附近的区域进行运算,避免不必要的计算。

应用场景

Deepwave的应用广泛,尤其适合以下领域:

  1. 地震成像:使用Deepwave生成的合成数据,可以帮助研究人员进行地震图像重建。
  2. 反演研究:其强大的后向传播功能,可用于全波形反演(FWI),以确定地下结构的详细特征。
  3. 教育培训:作为教学工具,帮助学生和研究者理解波动力学模拟和自动微分原理。

项目特点

  • 灵活且易于扩展的API,允许用户自定义目标函数或输入生成函数。
  • 支持多平台和硬件加速,兼顾CPU和GPU性能。
  • 自动化的局部模型提取,提高计算效率。
  • 提供Hessian矩阵计算,用于高级优化策略。
  • 示例代码简洁明了,便于快速上手和实践。

以下是一个简单的示例,展示了如何创建一个速度模型,从左上角的源传播波到右上方的接收器,计算目标函数,并进行梯度反传:

import torch
import deepwave
import matplotlib.pyplot as plt

v = 1500 * torch.ones(100, 100)
v[50:] = 2000
v.requires_grad_()

out = deepwave.scalar(
    v, grid_spacing=4, dt=0.004,
    source_amplitudes=deepwave.wavelets.ricker(25, 200, 0.004, 0.06).reshape(1, 1, -1),
    source_locations=torch.tensor([[[0, 0]]]),
    receiver_locations=torch.tensor([[[0, 99]]])
)

(out[-1]**2).sum().backward()

_, ax = plt.subplots(1, 3, figsize=(9, 3))
ax[0].imshow(v.detach())
ax[0].set_title("速度模型")
ax[1].plot(out[-1].detach().flatten())
ax[1].set_title("接收器数据")
ax[2].imshow(v.grad.detach(), vmin=-1e-5, vmax=1e-5)
ax[2].set_title("梯度")

加入Deepwave的世界,用深度学习的力量推动你的地震成像与反演研究进入新的篇章!

引用 如果你使用了Deepwave,请考虑引用以下文献:

@software{richardson_alan_2023,
  author       = {Richardson, Alan},
  title        = {Deepwave},
  month        = sep,
  year         = 2023,
  publisher    = {Zenodo},
  version      = {v0.0.20},
  doi          = {10.5281/zenodo.8381177},
  url          = {https://doi.org/10.5281/zenodo.8381177}
}

这将有助于我们持续改进和维护该项目。

deepwaveWave propagation modules for PyTorch.项目地址:https://gitcode.com/gh_mirrors/de/deepwave

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

房耿园Hartley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值