{
  "id": 124781,
  "title": "what's the kernel_size you are using for maxpool2d()?",
  "url": "/competitions/pku-autonomous-driving/discussion/124781",
  "author_name": "",
  "post_date": "2020-01-06T15:31:24.204660500Z",
  "votes": 1,
  "comment_count": 19,
  "views": 0,
  "content": "<p>have you tried kernel_size other than 2 for unet like centernet?</p>",
  "messages": [
    {
      "id": "711858",
      "postDate": "01/06/2020 15:31:24",
      "content": "<p>have you tried kernel_size other than 2 for unet like centernet?</p>",
      "rawMarkdown": "have you tried kernel_size other than 2 for unet like centernet?",
      "votes": null
    },
    {
      "id": "713141",
      "postDate": "01/08/2020 00:17:45",
      "content": "<p>I tried 3...unet-centernet</p>",
      "rawMarkdown": "I tried 3...unet-centernet",
      "votes": null
    },
    {
      "id": "713264",
      "postDate": "01/08/2020 04:55:29",
      "content": "<p>i tried 3 but it gave nan validation loss score, faced same issue? <a href=\"/guobaozi\">@guobaozi</a> </p>",
      "rawMarkdown": "i tried 3 but it gave nan validation loss score, faced same issue? @guobaozi",
      "votes": null
    },
    {
      "id": "713276",
      "postDate": "01/08/2020 05:17:18",
      "content": "<p>no... maxpool + topk()</p>",
      "rawMarkdown": "no... maxpool + topk()",
      "votes": null
    },
    {
      "id": "713279",
      "postDate": "01/08/2020 05:23:01",
      "content": "<p>what do you mean by topk()???</p>",
      "rawMarkdown": "what do you mean by topk()???",
      "votes": null
    },
    {
      "id": "713307",
      "postDate": "01/08/2020 06:20:08",
      "content": "<p>If the score_threshold is low, like logits &gt; -0.5, then max-pool will create much coords candidate areas. Then you need to run topk().This is my understanding and finding in running CenterNet paper kernel.</p>\n\n<p>centernet paper code: /decode.py/ddd_decode():\n  heat = _nms(heat)\n  scores, inds, clses, ys, xs = _topk(heat, K=K)</p>\n\n<p>You can read the source code. And you need to count the your kernel candidate area number(logits &gt; -0.5) with before and after max-pool. Then you will know why author implement the topk().\nThis is my understanding. My English is not well.If there is some faults, welcoming to point out it.</p>",
      "rawMarkdown": "If the score_threshold is low, like logits &gt; -0.5, then max-pool will create much coords candidate areas. Then you need to run topk().This is my understanding and finding in running CenterNet paper kernel.\n\ncenternet paper code: /decode.py/ddd_decode():\n  heat = _nms(heat)\n  scores, inds, clses, ys, xs = _topk(heat, K=K)\n\nYou can read the source code. And you need to count the your kernel candidate area number(logits &gt; -0.5) with before and after max-pool. Then you will know why author implement the topk().\nThis is my understanding. My English is not well.If there is some faults, welcoming to point out it.",
      "votes": null
    },
    {
      "id": "713310",
      "postDate": "01/08/2020 06:30:14",
      "content": "<p><a href=\"/guobaozi\">@guobaozi</a> \nthank you for your precious comment and your English is better than mine :)\nare you using ruslan's public kernel of this competition or centernet's keras implementation using your own gpu?</p>",
      "rawMarkdown": "guobaozi \nthank you for your precious comment and your English is better than mine :)\nare you using ruslan's public kernel of this competition or centernet's keras implementation using your own gpu?",
      "votes": null
    },
    {
      "id": "713313",
      "postDate": "01/08/2020 06:37:42",
      "content": "<p>Public kernel base line. I don't think public kernel or keras implementation existing diffirence. The core is centernet structure.And many functions you can read the source code then implement easily.</p>\n\n<p>Backbone do not determine the final results.</p>",
      "rawMarkdown": "Public kernel base line. I don't think public kernel or keras implementation existing diffirence. The core is centernet structure.And many functions you can read the source code then implement easily.\n\nBackbone do not determine the final results.",
      "votes": null
    },
    {
      "id": "713330",
      "postDate": "01/08/2020 06:56:30",
      "content": "<p>thanks <a href=\"/guobaozi\">@guobaozi</a> </p>",
      "rawMarkdown": "thanks @guobaozi",
      "votes": null
    },
    {
      "id": "713619",
      "postDate": "01/08/2020 13:32:00",
      "content": "<p>hi dear <a href=\"/guobaozi\">@guobaozi</a> \nfor topk() what is the value of k you are choosing?\nshould we use k=40?</p>",
      "rawMarkdown": "hi dear @guobaozi \nfor topk() what is the value of k you are choosing?\nshould we use k=40?",
      "votes": null
    },
    {
      "id": "713803",
      "postDate": "01/08/2020 17:06:34",
      "content": "<p>I used 40 ,but I found a problem before an hour: the max pool will change the x,y location in heatmap.  So it maybe not a good solution by using pooling operation......\nWe need to find new solution to clear_duplicates...\nPooling is  not good for very accurate location post process. Can you understand it?</p>",
      "rawMarkdown": "I used 40 ,but I found a problem before an hour: the max pool will change the x,y location in heatmap.  So it maybe not a good solution by using pooling operation......\nWe need to find new solution to clear_duplicates...\nPooling is  not good for very accurate location post process. Can you understand it?",
      "votes": null
    },
    {
      "id": "713817",
      "postDate": "01/08/2020 17:17:51",
      "content": "<p>I have some thoughts:\n1. regress 'width&amp;height',then calculate iou to clear_duplicates\n2.through the 'Z', then the 'DISTANCE_THRESH_CLEAR' is depend on 'Z',  closed object is small  and far away object is big.</p>\n\n<p>We have to find the local minimum instead of pooling operation.\nWhat do you think about this problem?</p>",
      "rawMarkdown": "I have some thoughts:\n1. regress 'width&amp;height',then calculate iou to clear_duplicates\n2.through the 'Z', then the 'DISTANCE_THRESH_CLEAR' is depend on 'Z',  closed object is small  and far away object is big.\n\nWe have to find the local minimum instead of pooling operation.\nWhat do you think about this problem?",
      "votes": null
    },
    {
      "id": "713818",
      "postDate": "01/08/2020 17:18:17",
      "content": "<p>from where you were trying topk(),,,,here? : <a href=\"https://github.com/jeongmin-seo/two-stream-pytorch/blob/78248ca24dbdadc9b8f3872de507d9433291cad9/network/dynamic_k_max.py\">https://github.com/jeongmin-seo/two-stream-pytorch/blob/78248ca24dbdadc9b8f3872de507d9433291cad9/network/dynamic_k_max.py</a></p>\n\n<p>why do you think \"Pooling is not good for very accurate location post process\" ?</p>",
      "rawMarkdown": "from where you were trying topk(),,,,here? : https://github.com/jeongmin-seo/two-stream-pytorch/blob/78248ca24dbdadc9b8f3872de507d9433291cad9/network/dynamic_k_max.py\n\nwhy do you think \"Pooling is not good for very accurate location post process\" ?",
      "votes": null
    },
    {
      "id": "713823",
      "postDate": "01/08/2020 17:26:42",
      "content": "<p>the centernet paper code: decode.py -  _nms(heat, kernel=3)\nthe _nms() function used max-pool.\ntopk() is also here.</p>\n\n<p>pool will change the 4*4 to 2*2(kernel=3,stride=1,without padding),after panding 2*2 recovery 3*3,but the location relation is broken</p>",
      "rawMarkdown": "the centernet paper code: decode.py -  _nms(heat, kernel=3)\nthe _nms() function used max-pool.\ntopk() is also here.\n\npool will change the 4*4 to 2*2(kernel=3,stride=1,without padding),after panding 2*2 recovery 3*3,but the location relation is broken",
      "votes": null
    },
    {
      "id": "713825",
      "postDate": "01/08/2020 17:28:23",
      "content": "<p>sleep time, 01:30 beijing time ,I need sleep... 4X4 - 3X3 - 2X2</p>",
      "rawMarkdown": "sleep time, 01:30 beijing time ,I need sleep... 4X4 - 3X3 - 2X2",
      "votes": null
    },
    {
      "id": "713842",
      "postDate": "01/08/2020 17:46:50",
      "content": "<p>my fault, I lost a line code, but it is important, this line code can solve the problem.\n_nms():</p>\n\n<p>keep = (hmax == heat).float()</p>",
      "rawMarkdown": "my fault, I lost a line code, but it is important, this line code can solve the problem.\n_nms():\n\nkeep = (hmax == heat).float()",
      "votes": null
    },
    {
      "id": "713857",
      "postDate": "01/08/2020 18:11:04",
      "content": "<p>I think the use of _nms( ) is to get points which value is bigger than other 8 points around it, and some other codes needs to be wrote after _nms( ). <a href=\"https://www.kaggle.com/diegojohnson/centernet-objects-as-points\">diegojohnson's note</a> has implemented it (using tensorflow).</p>",
      "rawMarkdown": "I think the use of _nms( ) is to get points which value is bigger than other 8 points around it, and some other codes needs to be wrote after _nms( ). [diegojohnson's note](https://www.kaggle.com/diegojohnson/centernet-objects-as-points) has implemented it (using tensorflow).",
      "votes": null
    },
    {
      "id": "714106",
      "postDate": "01/09/2020 04:06:51",
      "content": "<p>you are right, top_k is just for reducing calculation</p>",
      "rawMarkdown": "you are right, top_k is just for reducing calculation",
      "votes": null
    },
    {
      "id": "715606",
      "postDate": "01/10/2020 16:50:28",
      "content": "<p>THe use of nms looks strange . When reading the paper they take pride in not using non maximum supression</p>\n\n<p>here</p>\n\n<blockquote>\n  <p>Our approach is closely related to anchor-based onestage approaches [33, 36, 43]. A center point can be seen\n  as a single shape-agnostic anchor (see Figure 3). However,\n  there are a few important differences. First, our CenterNet\n  assigns the “anchor” based solely on location, not box overlap [18]. We have no manual thresholds [18] for foreground\n  and background classification. Second, we only have one\n  positive “anchor” per object, and hence do not need NonMaximum Suppression (NMS) [2]. We simply extract local peaks in the keypoint heatmap [4, 39].</p>\n</blockquote>",
      "rawMarkdown": "THe use of nms looks strange . When reading the paper they take pride in not using non maximum supression\n\n\n\nhere\n\n\n&gt; Our approach is closely related to anchor-based onestage approaches [33, 36, 43]. A center point can be seen\nas a single shape-agnostic anchor (see Figure 3). However,\nthere are a few important differences. First, our CenterNet\nassigns the “anchor” based solely on location, not box overlap [18]. We have no manual thresholds [18] for foreground\nand background classification. Second, we only have one\npositive “anchor” per object, and hence do not need NonMaximum Suppression (NMS) [2]. We simply extract local peaks in the keypoint heatmap [4, 39].",
      "votes": null
    },
    {
      "id": "718153",
      "postDate": "01/14/2020 04:44:17",
      "content": "<p>From the way I see it, they're proud to be not using the actual NMS processing many detectors use like YOLO, those behave in different way that they actually rely on IoU to remove duplicates. I believe that the _nms here with pooling is the \"extract local peaks\" part. </p>",
      "rawMarkdown": "From the way I see it, they're proud to be not using the actual NMS processing many detectors use like YOLO, those behave in different way that they actually rely on IoU to remove duplicates. I believe that the _nms here with pooling is the \"extract local peaks\" part.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 713141,
      "author_name": "guobaozi",
      "author_url": "",
      "post_date": "01/08/2020 00:17:45",
      "content": "<p>I tried 3...unet-centernet</p>",
      "votes": null,
      "replies": [
        {
          "id": 713264,
          "author_name": "mobassir",
          "author_url": "",
          "post_date": "01/08/2020 04:55:29",
          "content": "<p>i tried 3 but it gave nan validation loss score, faced same issue? <a href=\"/guobaozi\">@guobaozi</a> </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713276,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 05:17:18",
          "content": "<p>no... maxpool + topk()</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713279,
          "author_name": "mobassir",
          "author_url": "",
          "post_date": "01/08/2020 05:23:01",
          "content": "<p>what do you mean by topk()???</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713307,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 06:20:08",
          "content": "<p>If the score_threshold is low, like logits &gt; -0.5, then max-pool will create much coords candidate areas. Then you need to run topk().This is my understanding and finding in running CenterNet paper kernel.</p>\n\n<p>centernet paper code: /decode.py/ddd_decode():\n  heat = _nms(heat)\n  scores, inds, clses, ys, xs = _topk(heat, K=K)</p>\n\n<p>You can read the source code. And you need to count the your kernel candidate area number(logits &gt; -0.5) with before and after max-pool. Then you will know why author implement the topk().\nThis is my understanding. My English is not well.If there is some faults, welcoming to point out it.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713310,
          "author_name": "mobassir",
          "author_url": "",
          "post_date": "01/08/2020 06:30:14",
          "content": "<p><a href=\"/guobaozi\">@guobaozi</a> \nthank you for your precious comment and your English is better than mine :)\nare you using ruslan's public kernel of this competition or centernet's keras implementation using your own gpu?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713313,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 06:37:42",
          "content": "<p>Public kernel base line. I don't think public kernel or keras implementation existing diffirence. The core is centernet structure.And many functions you can read the source code then implement easily.</p>\n\n<p>Backbone do not determine the final results.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713330,
          "author_name": "mobassir",
          "author_url": "",
          "post_date": "01/08/2020 06:56:30",
          "content": "<p>thanks <a href=\"/guobaozi\">@guobaozi</a> </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713619,
          "author_name": "mobassir",
          "author_url": "",
          "post_date": "01/08/2020 13:32:00",
          "content": "<p>hi dear <a href=\"/guobaozi\">@guobaozi</a> \nfor topk() what is the value of k you are choosing?\nshould we use k=40?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713803,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 17:06:34",
          "content": "<p>I used 40 ,but I found a problem before an hour: the max pool will change the x,y location in heatmap.  So it maybe not a good solution by using pooling operation......\nWe need to find new solution to clear_duplicates...\nPooling is  not good for very accurate location post process. Can you understand it?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713817,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 17:17:51",
          "content": "<p>I have some thoughts:\n1. regress 'width&amp;height',then calculate iou to clear_duplicates\n2.through the 'Z', then the 'DISTANCE_THRESH_CLEAR' is depend on 'Z',  closed object is small  and far away object is big.</p>\n\n<p>We have to find the local minimum instead of pooling operation.\nWhat do you think about this problem?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713818,
          "author_name": "mobassir",
          "author_url": "",
          "post_date": "01/08/2020 17:18:17",
          "content": "<p>from where you were trying topk(),,,,here? : <a href=\"https://github.com/jeongmin-seo/two-stream-pytorch/blob/78248ca24dbdadc9b8f3872de507d9433291cad9/network/dynamic_k_max.py\">https://github.com/jeongmin-seo/two-stream-pytorch/blob/78248ca24dbdadc9b8f3872de507d9433291cad9/network/dynamic_k_max.py</a></p>\n\n<p>why do you think \"Pooling is not good for very accurate location post process\" ?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713823,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 17:26:42",
          "content": "<p>the centernet paper code: decode.py -  _nms(heat, kernel=3)\nthe _nms() function used max-pool.\ntopk() is also here.</p>\n\n<p>pool will change the 4*4 to 2*2(kernel=3,stride=1,without padding),after panding 2*2 recovery 3*3,but the location relation is broken</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713825,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 17:28:23",
          "content": "<p>sleep time, 01:30 beijing time ,I need sleep... 4X4 - 3X3 - 2X2</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713842,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/08/2020 17:46:50",
          "content": "<p>my fault, I lost a line code, but it is important, this line code can solve the problem.\n_nms():</p>\n\n<p>keep = (hmax == heat).float()</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 713857,
          "author_name": "welkinfeng",
          "author_url": "",
          "post_date": "01/08/2020 18:11:04",
          "content": "<p>I think the use of _nms( ) is to get points which value is bigger than other 8 points around it, and some other codes needs to be wrote after _nms( ). <a href=\"https://www.kaggle.com/diegojohnson/centernet-objects-as-points\">diegojohnson's note</a> has implemented it (using tensorflow).</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 714106,
          "author_name": "guobaozi",
          "author_url": "",
          "post_date": "01/09/2020 04:06:51",
          "content": "<p>you are right, top_k is just for reducing calculation</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 715606,
          "author_name": "felipebihaiek",
          "author_url": "",
          "post_date": "01/10/2020 16:50:28",
          "content": "<p>THe use of nms looks strange . When reading the paper they take pride in not using non maximum supression</p>\n\n<p>here</p>\n\n<blockquote>\n  <p>Our approach is closely related to anchor-based onestage approaches [33, 36, 43]. A center point can be seen\n  as a single shape-agnostic anchor (see Figure 3). However,\n  there are a few important differences. First, our CenterNet\n  assigns the “anchor” based solely on location, not box overlap [18]. We have no manual thresholds [18] for foreground\n  and background classification. Second, we only have one\n  positive “anchor” per object, and hence do not need NonMaximum Suppression (NMS) [2]. We simply extract local peaks in the keypoint heatmap [4, 39].</p>\n</blockquote>",
          "votes": null,
          "replies": []
        },
        {
          "id": 718153,
          "author_name": "joonl04",
          "author_url": "",
          "post_date": "01/14/2020 04:44:17",
          "content": "<p>From the way I see it, they're proud to be not using the actual NMS processing many detectors use like YOLO, those behave in different way that they actually rely on IoU to remove duplicates. I believe that the _nms here with pooling is the \"extract local peaks\" part. </p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "711858": "have you tried kernel_size other than 2 for unet like centernet?",
    "713141": "I tried 3...unet-centernet",
    "713264": "i tried 3 but it gave nan validation loss score, faced same issue? @guobaozi",
    "713276": "no... maxpool + topk()",
    "713279": "what do you mean by topk()???",
    "713307": "If the score_threshold is low, like logits &gt; -0.5, then max-pool will create much coords candidate areas. Then you need to run topk().This is my understanding and finding in running CenterNet paper kernel.\n\ncenternet paper code: /decode.py/ddd_decode():\n  heat = _nms(heat)\n  scores, inds, clses, ys, xs = _topk(heat, K=K)\n\nYou can read the source code. And you need to count the your kernel candidate area number(logits &gt; -0.5) with before and after max-pool. Then you will know why author implement the topk().\nThis is my understanding. My English is not well.If there is some faults, welcoming to point out it.",
    "713310": "guobaozi \nthank you for your precious comment and your English is better than mine :)\nare you using ruslan's public kernel of this competition or centernet's keras implementation using your own gpu?",
    "713313": "Public kernel base line. I don't think public kernel or keras implementation existing diffirence. The core is centernet structure.And many functions you can read the source code then implement easily.\n\nBackbone do not determine the final results.",
    "713330": "thanks @guobaozi",
    "713619": "hi dear @guobaozi \nfor topk() what is the value of k you are choosing?\nshould we use k=40?",
    "713803": "I used 40 ,but I found a problem before an hour: the max pool will change the x,y location in heatmap.  So it maybe not a good solution by using pooling operation......\nWe need to find new solution to clear_duplicates...\nPooling is  not good for very accurate location post process. Can you understand it?",
    "713817": "I have some thoughts:\n1. regress 'width&amp;height',then calculate iou to clear_duplicates\n2.through the 'Z', then the 'DISTANCE_THRESH_CLEAR' is depend on 'Z',  closed object is small  and far away object is big.\n\nWe have to find the local minimum instead of pooling operation.\nWhat do you think about this problem?",
    "713818": "from where you were trying topk(),,,,here? : https://github.com/jeongmin-seo/two-stream-pytorch/blob/78248ca24dbdadc9b8f3872de507d9433291cad9/network/dynamic_k_max.py\n\nwhy do you think \"Pooling is not good for very accurate location post process\" ?",
    "713823": "the centernet paper code: decode.py -  _nms(heat, kernel=3)\nthe _nms() function used max-pool.\ntopk() is also here.\n\npool will change the 4*4 to 2*2(kernel=3,stride=1,without padding),after panding 2*2 recovery 3*3,but the location relation is broken",
    "713825": "sleep time, 01:30 beijing time ,I need sleep... 4X4 - 3X3 - 2X2",
    "713842": "my fault, I lost a line code, but it is important, this line code can solve the problem.\n_nms():\n\nkeep = (hmax == heat).float()",
    "713857": "I think the use of _nms( ) is to get points which value is bigger than other 8 points around it, and some other codes needs to be wrote after _nms( ). [diegojohnson's note](https://www.kaggle.com/diegojohnson/centernet-objects-as-points) has implemented it (using tensorflow).",
    "714106": "you are right, top_k is just for reducing calculation",
    "715606": "THe use of nms looks strange . When reading the paper they take pride in not using non maximum supression\n\n\n\nhere\n\n\n&gt; Our approach is closely related to anchor-based onestage approaches [33, 36, 43]. A center point can be seen\nas a single shape-agnostic anchor (see Figure 3). However,\nthere are a few important differences. First, our CenterNet\nassigns the “anchor” based solely on location, not box overlap [18]. We have no manual thresholds [18] for foreground\nand background classification. Second, we only have one\npositive “anchor” per object, and hence do not need NonMaximum Suppression (NMS) [2]. We simply extract local peaks in the keypoint heatmap [4, 39].",
    "718153": "From the way I see it, they're proud to be not using the actual NMS processing many detectors use like YOLO, those behave in different way that they actually rely on IoU to remove duplicates. I believe that the _nms here with pooling is the \"extract local peaks\" part."
  },
  "source": "meta"
}