{
  "id": 587434,
  "title": "adjoint method of computing velocity gradient for wave modeling",
  "url": "/competitions/waveform-inversion/discussion/587434",
  "author_name": "",
  "post_date": "2025-07-01T03:39:42.513959400Z",
  "votes": null,
  "comment_count": 8,
  "views": 0,
  "content": "<p>Q1) i read that there is this adjoint method of computing velocity gradient for wave modeling. It seems that this is faster than automatic differentiation. did anyone try it?</p>\n<p>Q2) another question, did anyone get deepwave to work?<br>\n<a href=\"https://github.com/ar4/deepwave\" target=\"_blank\">https://github.com/ar4/deepwave</a></p>\n<p>i try to change a couple of deepwave parameters, but cannot get it to behave like the host pytorch code of FMW. is it because of different absorbing boundary conditions?</p>\n<p>Q3) Assume that we do NOT have the host pytorch code of FMW. In that cause we can only approximate the physics modeling. say if we use open source like deepwave to do FMW (which will have some error), do you think we still can get good results? </p>",
  "messages": [
    {
      "id": "3237346",
      "postDate": "07/01/2025 03:39:42",
      "content": "<p>Q1) i read that there is this adjoint method of computing velocity gradient for wave modeling. It seems that this is faster than automatic differentiation. did anyone try it?</p>\n<p>Q2) another question, did anyone get deepwave to work?<br>\n<a href=\"https://github.com/ar4/deepwave\" target=\"_blank\">https://github.com/ar4/deepwave</a></p>\n<p>i try to change a couple of deepwave parameters, but cannot get it to behave like the host pytorch code of FMW. is it because of different absorbing boundary conditions?</p>\n<p>Q3) Assume that we do NOT have the host pytorch code of FMW. In that cause we can only approximate the physics modeling. say if we use open source like deepwave to do FMW (which will have some error), do you think we still can get good results? </p>",
      "rawMarkdown": "Q1) i read that there is this adjoint method of computing velocity gradient for wave modeling. It seems that this is faster than automatic differentiation. did anyone try it?\n\nQ2) another question, did anyone get deepwave to work?\nhttps://github.com/ar4/deepwave\n\ni try to change a couple of deepwave parameters, but cannot get it to behave like the host pytorch code of FMW. is it because of different absorbing boundary conditions?\n\n\nQ3) Assume that we do NOT have the host pytorch code of FMW. In that cause we can only approximate the physics modeling. say if we use open source like deepwave to do FMW (which will have some error), do you think we still can get good results?",
      "votes": null
    },
    {
      "id": "3237373",
      "postDate": "07/01/2025 04:00:25",
      "content": "<p>For Q3, in my experiments, deepwave could make velocity map better for a few steps, but after that, it navigates to a wrong solution</p>",
      "rawMarkdown": "For Q3, in my experiments, deepwave could make velocity map better for a few steps, but after that, it navigates to a wrong solution",
      "votes": null
    },
    {
      "id": "3237476",
      "postDate": "07/01/2025 05:54:05",
      "content": "<p>Q1) Do you just mean implementing the backpropagation manually, rather than through autodiff? This is basically what I did. I can do the forward model in 30 ms and backpropagate it in 70 ms (I think I missed some significant optimziation opportunities though). Details in the weekend!</p>\n<p>Q2) Didn't try.</p>\n<p>Q3) Not sure, but I think not. I joined this competition specifically because this code <em>was</em> available, and had I failed to reproduce the seismograms exactly I would have quit.</p>",
      "rawMarkdown": "Q1) Do you just mean implementing the backpropagation manually, rather than through autodiff? This is basically what I did. I can do the forward model in 30 ms and backpropagate it in 70 ms (I think I missed some significant optimziation opportunities though). Details in the weekend!\n\nQ2) Didn't try.\n\nQ3) Not sure, but I think not. I joined this competition specifically because this code *was* available, and had I failed to reproduce the seismograms exactly I would have quit.",
      "votes": null
    },
    {
      "id": "3237559",
      "postDate": "07/01/2025 07:02:49",
      "content": "<p>For 3, probably not- it was very sensitive to systematic error (try to train a model only on flip data and see- even though flip data is only different in middle seis and only in one pixel shift of source!)</p>",
      "rawMarkdown": "For 3, probably not- it was very sensitive to systematic error (try to train a model only on flip data and see- even though flip data is only different in middle seis and only in one pixel shift of source!)",
      "votes": null
    },
    {
      "id": "3237578",
      "postDate": "07/01/2025 07:15:48",
      "content": "<p>Thanks for all the answers. I actually think that the fwm of the data should not be made public ( whether in paper or code ). It may be better for the host to prepare another dataset for this competition with unknown fmw. Because if it is known, we definitely get best results using it ( rather then trying things like deepop net, diffusion fwi, etc) This discourage people from trying to learn the underlying physics from data or trying to formulate the physics that can be used.</p>\n<p>Seismic survey is good application for machine learning. I hope there is version 2 of the competition, maybe using real survey data. It can something like team that pinpoint location nearest to oil reserve in survey data win.</p>",
      "rawMarkdown": "Thanks for all the answers. I actually think that the fwm of the data should not be made public ( whether in paper or code ). It may be better for the host to prepare another dataset for this competition with unknown fmw. Because if it is known, we definitely get best results using it ( rather then trying things like deepop net, diffusion fwi, etc) This discourage people from trying to learn the underlying physics from data or trying to formulate the physics that can be used.\n\n\nSeismic survey is good application for machine learning. I hope there is version 2 of the competition, maybe using real survey data. It can something like team that pinpoint location nearest to oil reserve in survey data win.",
      "votes": null
    },
    {
      "id": "3237586",
      "postDate": "07/01/2025 07:20:01",
      "content": "<p>Yes I think so too. That is why exact fwm code is important. My experiment shows that too. Thanks for the confirmation.</p>",
      "rawMarkdown": "Yes I think so too. That is why exact fwm code is important. My experiment shows that too. Thanks for the confirmation.",
      "votes": null
    },
    {
      "id": "3238819",
      "postDate": "07/02/2025 08:17:31",
      "content": "<p>1) <a href=\"https://github.com/GeophyAI/seistorch\" target=\"_blank\">https://github.com/GeophyAI/seistorch</a> has both finite difference method (similar to the host code in fourier deep onet repo), and pseudo spectral method.</p>\n<p>I was about to use it when I found the host code.</p>",
      "rawMarkdown": "1) https://github.com/GeophyAI/seistorch has both finite difference method (similar to the host code in fourier deep onet repo), and pseudo spectral method.\n\nI was about to use it when I found the host code.",
      "votes": null
    },
    {
      "id": "3238867",
      "postDate": "07/02/2025 09:12:25",
      "content": "<p>this is very helpful. i will sure take a look! thanks!</p>",
      "rawMarkdown": "this is very helpful. i will sure take a look! thanks!",
      "votes": null
    },
    {
      "id": "3238868",
      "postDate": "07/02/2025 09:13:07",
      "content": "<p>\"implementing the backpropagation manually, rather than through autodiff? \"<br>\nyes.</p>\n<p>i am looking forward to you implement details.<br>\nThanks!</p>",
      "rawMarkdown": "\"implementing the backpropagation manually, rather than through autodiff? \"\nyes.\n\ni am looking forward to you implement details.\nThanks!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3237373,
      "author_name": "haruiig",
      "author_url": "",
      "post_date": "07/01/2025 04:00:25",
      "content": "<p>For Q3, in my experiments, deepwave could make velocity map better for a few steps, but after that, it navigates to a wrong solution</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3237476,
      "author_name": "jeroencottaar",
      "author_url": "",
      "post_date": "07/01/2025 05:54:05",
      "content": "<p>Q1) Do you just mean implementing the backpropagation manually, rather than through autodiff? This is basically what I did. I can do the forward model in 30 ms and backpropagate it in 70 ms (I think I missed some significant optimziation opportunities though). Details in the weekend!</p>\n<p>Q2) Didn't try.</p>\n<p>Q3) Not sure, but I think not. I joined this competition specifically because this code <em>was</em> available, and had I failed to reproduce the seismograms exactly I would have quit.</p>",
      "votes": null,
      "replies": [
        {
          "id": 3238868,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "07/02/2025 09:13:07",
          "content": "<p>\"implementing the backpropagation manually, rather than through autodiff? \"<br>\nyes.</p>\n<p>i am looking forward to you implement details.<br>\nThanks!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 3237559,
      "author_name": "shlomoron",
      "author_url": "",
      "post_date": "07/01/2025 07:02:49",
      "content": "<p>For 3, probably not- it was very sensitive to systematic error (try to train a model only on flip data and see- even though flip data is only different in middle seis and only in one pixel shift of source!)</p>",
      "votes": null,
      "replies": [
        {
          "id": 3237586,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "07/01/2025 07:20:01",
          "content": "<p>Yes I think so too. That is why exact fwm code is important. My experiment shows that too. Thanks for the confirmation.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 3237578,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "07/01/2025 07:15:48",
      "content": "<p>Thanks for all the answers. I actually think that the fwm of the data should not be made public ( whether in paper or code ). It may be better for the host to prepare another dataset for this competition with unknown fmw. Because if it is known, we definitely get best results using it ( rather then trying things like deepop net, diffusion fwi, etc) This discourage people from trying to learn the underlying physics from data or trying to formulate the physics that can be used.</p>\n<p>Seismic survey is good application for machine learning. I hope there is version 2 of the competition, maybe using real survey data. It can something like team that pinpoint location nearest to oil reserve in survey data win.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3238819,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "07/02/2025 08:17:31",
      "content": "<p>1) <a href=\"https://github.com/GeophyAI/seistorch\" target=\"_blank\">https://github.com/GeophyAI/seistorch</a> has both finite difference method (similar to the host code in fourier deep onet repo), and pseudo spectral method.</p>\n<p>I was about to use it when I found the host code.</p>",
      "votes": null,
      "replies": [
        {
          "id": 3238867,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "07/02/2025 09:12:25",
          "content": "<p>this is very helpful. i will sure take a look! thanks!</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3237346": "Q1) i read that there is this adjoint method of computing velocity gradient for wave modeling. It seems that this is faster than automatic differentiation. did anyone try it?\n\nQ2) another question, did anyone get deepwave to work?\nhttps://github.com/ar4/deepwave\n\ni try to change a couple of deepwave parameters, but cannot get it to behave like the host pytorch code of FMW. is it because of different absorbing boundary conditions?\n\n\nQ3) Assume that we do NOT have the host pytorch code of FMW. In that cause we can only approximate the physics modeling. say if we use open source like deepwave to do FMW (which will have some error), do you think we still can get good results?",
    "3237373": "For Q3, in my experiments, deepwave could make velocity map better for a few steps, but after that, it navigates to a wrong solution",
    "3237476": "Q1) Do you just mean implementing the backpropagation manually, rather than through autodiff? This is basically what I did. I can do the forward model in 30 ms and backpropagate it in 70 ms (I think I missed some significant optimziation opportunities though). Details in the weekend!\n\nQ2) Didn't try.\n\nQ3) Not sure, but I think not. I joined this competition specifically because this code *was* available, and had I failed to reproduce the seismograms exactly I would have quit.",
    "3237559": "For 3, probably not- it was very sensitive to systematic error (try to train a model only on flip data and see- even though flip data is only different in middle seis and only in one pixel shift of source!)",
    "3237578": "Thanks for all the answers. I actually think that the fwm of the data should not be made public ( whether in paper or code ). It may be better for the host to prepare another dataset for this competition with unknown fmw. Because if it is known, we definitely get best results using it ( rather then trying things like deepop net, diffusion fwi, etc) This discourage people from trying to learn the underlying physics from data or trying to formulate the physics that can be used.\n\n\nSeismic survey is good application for machine learning. I hope there is version 2 of the competition, maybe using real survey data. It can something like team that pinpoint location nearest to oil reserve in survey data win.",
    "3237586": "Yes I think so too. That is why exact fwm code is important. My experiment shows that too. Thanks for the confirmation.",
    "3238819": "1) https://github.com/GeophyAI/seistorch has both finite difference method (similar to the host code in fourier deep onet repo), and pseudo spectral method.\n\nI was about to use it when I found the host code.",
    "3238867": "this is very helpful. i will sure take a look! thanks!",
    "3238868": "\"implementing the backpropagation manually, rather than through autodiff? \"\nyes.\n\ni am looking forward to you implement details.\nThanks!"
  },
  "source": "meta"
}