{
  "id": 104572,
  "title": "Regression task on pseudo 2D images",
  "url": "/competitions/champs-scalar-coupling/discussion/104572",
  "author_name": "",
  "post_date": "2019-08-17T20:33:47.240104200Z",
  "votes": 17,
  "comment_count": 13,
  "views": 0,
  "content": "<p>In this competition, I thought of treating the problem as a regression task on 2D images. My feeling was that such images would contain enough information concerning the geometry of the molecule so that a CNN would be able to perform better that a tree based model, since in the later, we have an a priory on the features that have to be fed to the model. However, I lack of experience to create efficient CNN architectures. I thus feel I could not get the full juice out of the method and thus want to make it public, to see if others manage to obtain better results.</p>\n\n<p>In the kernel <a href=\"https://www.kaggle.com/fabiendaniel/creating-bond-centered-2d-images/\">creating bond centered 2D images</a>, I show how I create the 2D images for every molecular bond. The code is not efficient and it's thus quite time consuming to create a whole dataset with such images. Such datasets are made available for the <a href=\"https://www.kaggle.com/fabiendaniel/full-images-1jhn/\">1JHN symetry</a> and part of the <a href=\"https://www.kaggle.com/fabiendaniel/image-1jhc-part1\">1JHC molecular bonds</a>. A tentative CNN architecture is also given <a href=\"https://www.kaggle.com/fabiendaniel/cnn-on-1jhn-2d-images\">here</a>.</p>\n\n<p>PS: with the 2D images constructed that way, the coordinates of the pixels are physically meaningful. Such information is lost in the CNN architecture I built. Which kind of architecture would be suitable for that ?? I tried to remove the maxpooling layer or to add filters with fixed coordinates, but this did not seem to improve the results ...</p>",
  "messages": [
    {
      "id": "601575",
      "postDate": "08/17/2019 20:33:47",
      "content": "<p>In this competition, I thought of treating the problem as a regression task on 2D images. My feeling was that such images would contain enough information concerning the geometry of the molecule so that a CNN would be able to perform better that a tree based model, since in the later, we have an a priory on the features that have to be fed to the model. However, I lack of experience to create efficient CNN architectures. I thus feel I could not get the full juice out of the method and thus want to make it public, to see if others manage to obtain better results.</p>\n\n<p>In the kernel <a href=\"https://www.kaggle.com/fabiendaniel/creating-bond-centered-2d-images/\">creating bond centered 2D images</a>, I show how I create the 2D images for every molecular bond. The code is not efficient and it's thus quite time consuming to create a whole dataset with such images. Such datasets are made available for the <a href=\"https://www.kaggle.com/fabiendaniel/full-images-1jhn/\">1JHN symetry</a> and part of the <a href=\"https://www.kaggle.com/fabiendaniel/image-1jhc-part1\">1JHC molecular bonds</a>. A tentative CNN architecture is also given <a href=\"https://www.kaggle.com/fabiendaniel/cnn-on-1jhn-2d-images\">here</a>.</p>\n\n<p>PS: with the 2D images constructed that way, the coordinates of the pixels are physically meaningful. Such information is lost in the CNN architecture I built. Which kind of architecture would be suitable for that ?? I tried to remove the maxpooling layer or to add filters with fixed coordinates, but this did not seem to improve the results ...</p>",
      "rawMarkdown": "In this competition, I thought of treating the problem as a regression task on 2D images. My feeling was that such images would contain enough information concerning the geometry of the molecule so that a CNN would be able to perform better that a tree based model, since in the later, we have an a priory on the features that have to be fed to the model. However, I lack of experience to create efficient CNN architectures. I thus feel I could not get the full juice out of the method and thus want to make it public, to see if others manage to obtain better results.\n\nIn the kernel [creating bond centered 2D images](https://www.kaggle.com/fabiendaniel/creating-bond-centered-2d-images/), I show how I create the 2D images for every molecular bond. The code is not efficient and it's thus quite time consuming to create a whole dataset with such images. Such datasets are made available for the [1JHN symetry](https://www.kaggle.com/fabiendaniel/full-images-1jhn/) and part of the [1JHC molecular bonds](https://www.kaggle.com/fabiendaniel/image-1jhc-part1). A tentative CNN architecture is also given [here](https://www.kaggle.com/fabiendaniel/cnn-on-1jhn-2d-images).\n\nPS: with the 2D images constructed that way, the coordinates of the pixels are physically meaningful. Such information is lost in the CNN architecture I built. Which kind of architecture would be suitable for that ?? I tried to remove the maxpooling layer or to add filters with fixed coordinates, but this did not seem to improve the results ...",
      "votes": null
    },
    {
      "id": "601702",
      "postDate": "08/18/2019 04:26:36",
      "content": "<p>Hi FabienDaniel. Good idea. Could you please check the link for CNN architecture. I am trying to open the architecture and its not opening up. </p>",
      "rawMarkdown": "Hi FabienDaniel. Good idea. Could you please check the link for CNN architecture. I am trying to open the architecture and its not opening up.",
      "votes": null
    },
    {
      "id": "601823",
      "postDate": "08/18/2019 07:38:04",
      "content": "<p>Thanks, I forgot to make the kernel public. That's fixed !</p>",
      "rawMarkdown": "Thanks, I forgot to make the kernel public. That's fixed !",
      "votes": null
    },
    {
      "id": "603308",
      "postDate": "08/20/2019 06:03:00",
      "content": "<p>I made public a few more datasets on other symetries:\n- <a href=\"https://www.kaggle.com/fabiendaniel/full-images-2jhn\">2JHN</a>\n- <a href=\"https://www.kaggle.com/fabiendaniel/image-3jhn-chunk1\">3JHN part1</a> and <a href=\"https://www.kaggle.com/fabiendaniel/image-3jhn-chunk2\">3JHN part2</a>\n- <a href=\"https://www.kaggle.com/fabiendaniel/image-2jhh-part-1\">2JHH part1</a> and <a href=\"https://www.kaggle.com/fabiendaniel/image-2jhh-part-2\">2JHH part2</a> </p>",
      "rawMarkdown": "I made public a few more datasets on other symetries:\n- [2JHN](https://www.kaggle.com/fabiendaniel/full-images-2jhn)\n- [3JHN part1](https://www.kaggle.com/fabiendaniel/image-3jhn-chunk1) and [3JHN part2](https://www.kaggle.com/fabiendaniel/image-3jhn-chunk2)\n- [2JHH part1](https://www.kaggle.com/fabiendaniel/image-2jhh-part-1) and [2JHH part2](https://www.kaggle.com/fabiendaniel/image-2jhh-part-2)",
      "votes": null
    },
    {
      "id": "603904",
      "postDate": "08/20/2019 19:42:23",
      "content": "<p>I wanted to do this as well. If I had a good enough gpu I might've run it too. Good job.</p>",
      "rawMarkdown": "I wanted to do this as well. If I had a good enough gpu I might've run it too. Good job.",
      "votes": null
    },
    {
      "id": "603906",
      "postDate": "08/20/2019 19:46:34",
      "content": "<p>Thanks ! I have done everything on Kaggle's kernel ;)</p>",
      "rawMarkdown": "Thanks ! I have done everything on Kaggle's kernel ;)",
      "votes": null
    },
    {
      "id": "606155",
      "postDate": "08/23/2019 09:13:33",
      "content": "<p>Génial! Merci pour ton partage.</p>",
      "rawMarkdown": "Génial! Merci pour ton partage.",
      "votes": null
    },
    {
      "id": "606160",
      "postDate": "08/23/2019 09:26:52",
      "content": "<p>avec plaisir :)</p>",
      "rawMarkdown": "avec plaisir :)",
      "votes": null
    },
    {
      "id": "606230",
      "postDate": "08/23/2019 11:03:05",
      "content": "<p>Thank you for sharing. 3JHN part2 is not working. Could you reload the data?</p>",
      "rawMarkdown": "Thank you for sharing. 3JHN part2 is not working. Could you reload the data?",
      "votes": null
    },
    {
      "id": "606241",
      "postDate": "08/23/2019 11:09:54",
      "content": "<p>The 3JHN dataset should be OK: in <a href=\"https://www.kaggle.com/fabiendaniel/3jhn-model-1-fold0-mse/\">this kernel</a>, I used it, so that you may check the way I load the data.</p>",
      "rawMarkdown": "The 3JHN dataset should be OK: in [this kernel](https://www.kaggle.com/fabiendaniel/3jhn-model-1-fold0-mse/), I used it, so that you may check the way I load the data.",
      "votes": null
    },
    {
      "id": "606248",
      "postDate": "08/23/2019 11:16:23",
      "content": "<p>I meant the link above is not working. When I clicked it, it says 404.</p>",
      "rawMarkdown": "I meant the link above is not working. When I clicked it, it says 404.",
      "votes": null
    },
    {
      "id": "606249",
      "postDate": "08/23/2019 11:17:54",
      "content": "<p>Chunk1 is ok but chunk2 for 3JHN is not</p>",
      "rawMarkdown": "Chunk1 is ok but chunk2 for 3JHN is not",
      "votes": null
    },
    {
      "id": "606250",
      "postDate": "08/23/2019 11:19:26",
      "content": "<p>ups, the dataset was still private ... fixed !</p>",
      "rawMarkdown": "ups, the dataset was still private ... fixed !",
      "votes": null
    },
    {
      "id": "606292",
      "postDate": "08/23/2019 11:50:09",
      "content": "<p>Thank you. I really like the way you represent edge with (r,R), which satisfies translational and rotational invariant. The only downside is that it takes forever to run :D</p>",
      "rawMarkdown": "Thank you. I really like the way you represent edge with (r,R), which satisfies translational and rotational invariant. The only downside is that it takes forever to run :D",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 601702,
      "author_name": "manojprabhaakr",
      "author_url": "",
      "post_date": "08/18/2019 04:26:36",
      "content": "<p>Hi FabienDaniel. Good idea. Could you please check the link for CNN architecture. I am trying to open the architecture and its not opening up. </p>",
      "votes": null,
      "replies": [
        {
          "id": 601823,
          "author_name": "fabiendaniel",
          "author_url": "",
          "post_date": "08/18/2019 07:38:04",
          "content": "<p>Thanks, I forgot to make the kernel public. That's fixed !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 603308,
      "author_name": "fabiendaniel",
      "author_url": "",
      "post_date": "08/20/2019 06:03:00",
      "content": "<p>I made public a few more datasets on other symetries:\n- <a href=\"https://www.kaggle.com/fabiendaniel/full-images-2jhn\">2JHN</a>\n- <a href=\"https://www.kaggle.com/fabiendaniel/image-3jhn-chunk1\">3JHN part1</a> and <a href=\"https://www.kaggle.com/fabiendaniel/image-3jhn-chunk2\">3JHN part2</a>\n- <a href=\"https://www.kaggle.com/fabiendaniel/image-2jhh-part-1\">2JHH part1</a> and <a href=\"https://www.kaggle.com/fabiendaniel/image-2jhh-part-2\">2JHH part2</a> </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 603904,
      "author_name": "roushrsh",
      "author_url": "",
      "post_date": "08/20/2019 19:42:23",
      "content": "<p>I wanted to do this as well. If I had a good enough gpu I might've run it too. Good job.</p>",
      "votes": null,
      "replies": [
        {
          "id": 603906,
          "author_name": "fabiendaniel",
          "author_url": "",
          "post_date": "08/20/2019 19:46:34",
          "content": "<p>Thanks ! I have done everything on Kaggle's kernel ;)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 606155,
      "author_name": "alexpartisan",
      "author_url": "",
      "post_date": "08/23/2019 09:13:33",
      "content": "<p>Génial! Merci pour ton partage.</p>",
      "votes": null,
      "replies": [
        {
          "id": 606160,
          "author_name": "fabiendaniel",
          "author_url": "",
          "post_date": "08/23/2019 09:26:52",
          "content": "<p>avec plaisir :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 606230,
      "author_name": "zhenlanwang",
      "author_url": "",
      "post_date": "08/23/2019 11:03:05",
      "content": "<p>Thank you for sharing. 3JHN part2 is not working. Could you reload the data?</p>",
      "votes": null,
      "replies": [
        {
          "id": 606241,
          "author_name": "fabiendaniel",
          "author_url": "",
          "post_date": "08/23/2019 11:09:54",
          "content": "<p>The 3JHN dataset should be OK: in <a href=\"https://www.kaggle.com/fabiendaniel/3jhn-model-1-fold0-mse/\">this kernel</a>, I used it, so that you may check the way I load the data.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 606248,
          "author_name": "zhenlanwang",
          "author_url": "",
          "post_date": "08/23/2019 11:16:23",
          "content": "<p>I meant the link above is not working. When I clicked it, it says 404.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 606249,
          "author_name": "zhenlanwang",
          "author_url": "",
          "post_date": "08/23/2019 11:17:54",
          "content": "<p>Chunk1 is ok but chunk2 for 3JHN is not</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 606250,
          "author_name": "fabiendaniel",
          "author_url": "",
          "post_date": "08/23/2019 11:19:26",
          "content": "<p>ups, the dataset was still private ... fixed !</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 606292,
          "author_name": "zhenlanwang",
          "author_url": "",
          "post_date": "08/23/2019 11:50:09",
          "content": "<p>Thank you. I really like the way you represent edge with (r,R), which satisfies translational and rotational invariant. The only downside is that it takes forever to run :D</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "601575": "In this competition, I thought of treating the problem as a regression task on 2D images. My feeling was that such images would contain enough information concerning the geometry of the molecule so that a CNN would be able to perform better that a tree based model, since in the later, we have an a priory on the features that have to be fed to the model. However, I lack of experience to create efficient CNN architectures. I thus feel I could not get the full juice out of the method and thus want to make it public, to see if others manage to obtain better results.\n\nIn the kernel [creating bond centered 2D images](https://www.kaggle.com/fabiendaniel/creating-bond-centered-2d-images/), I show how I create the 2D images for every molecular bond. The code is not efficient and it's thus quite time consuming to create a whole dataset with such images. Such datasets are made available for the [1JHN symetry](https://www.kaggle.com/fabiendaniel/full-images-1jhn/) and part of the [1JHC molecular bonds](https://www.kaggle.com/fabiendaniel/image-1jhc-part1). A tentative CNN architecture is also given [here](https://www.kaggle.com/fabiendaniel/cnn-on-1jhn-2d-images).\n\nPS: with the 2D images constructed that way, the coordinates of the pixels are physically meaningful. Such information is lost in the CNN architecture I built. Which kind of architecture would be suitable for that ?? I tried to remove the maxpooling layer or to add filters with fixed coordinates, but this did not seem to improve the results ...",
    "601702": "Hi FabienDaniel. Good idea. Could you please check the link for CNN architecture. I am trying to open the architecture and its not opening up.",
    "601823": "Thanks, I forgot to make the kernel public. That's fixed !",
    "603308": "I made public a few more datasets on other symetries:\n- [2JHN](https://www.kaggle.com/fabiendaniel/full-images-2jhn)\n- [3JHN part1](https://www.kaggle.com/fabiendaniel/image-3jhn-chunk1) and [3JHN part2](https://www.kaggle.com/fabiendaniel/image-3jhn-chunk2)\n- [2JHH part1](https://www.kaggle.com/fabiendaniel/image-2jhh-part-1) and [2JHH part2](https://www.kaggle.com/fabiendaniel/image-2jhh-part-2)",
    "603904": "I wanted to do this as well. If I had a good enough gpu I might've run it too. Good job.",
    "603906": "Thanks ! I have done everything on Kaggle's kernel ;)",
    "606155": "Génial! Merci pour ton partage.",
    "606160": "avec plaisir :)",
    "606230": "Thank you for sharing. 3JHN part2 is not working. Could you reload the data?",
    "606241": "The 3JHN dataset should be OK: in [this kernel](https://www.kaggle.com/fabiendaniel/3jhn-model-1-fold0-mse/), I used it, so that you may check the way I load the data.",
    "606248": "I meant the link above is not working. When I clicked it, it says 404.",
    "606249": "Chunk1 is ok but chunk2 for 3JHN is not",
    "606250": "ups, the dataset was still private ... fixed !",
    "606292": "Thank you. I really like the way you represent edge with (r,R), which satisfies translational and rotational invariant. The only downside is that it takes forever to run :D"
  },
  "source": "meta"
}