{
  "id": 183199,
  "title": "3rd place solution",
  "url": "/competitions/birdsong-recognition/writeups/is-this-a-pigeon-3rd-place-solution",
  "author_name": "",
  "post_date": "2020-09-18T09:55:18.963Z",
  "votes": 133,
  "comment_count": 75,
  "views": 0,
  "content": "<p>Very glad to end my journey to Kaggle GM with a 3rd place, congratz to my teamates and everybody who made it to the end !</p>\n<p>Our solution has three main aspects : data augmentation, modeling and post-processing</p>\n<h4>Data Augmentation</h4>\n<p>Data augmentation is the key to reduce the discrepancy between train and test. We start by randomly cropping 5 seconds of the audio and then add aggressive noise augmentations :</p>\n<ul>\n<li>Gaussian noise</li>\n</ul>\n<p>With a soud to noise ratio up to 0.5</p>\n<ul>\n<li>Background noise</li>\n</ul>\n<p>We randomly chose 5 seconds of a sample in the background dataset available <a href=\"https://www.kaggle.com/theoviel/bird-backgrounds\" target=\"_blank\">here</a>. This dataset contains samples without bircall from the example test audios from the competition data, and some samples from the freesound bird detection challenge that were manually selected.</p>\n<ul>\n<li>Modified Mixup</li>\n</ul>\n<p>Mixup creates a combination of a batch <code>x1</code> and its shuffled version <code>x2</code> : <code>x = a * x1 + (1 - a) * x2</code> where <code>a</code> is samples with a beta distribution. <br>\nThen, instead of using the classical objective for mixup, we define the target associated to <code>x</code> as the union of the original targets. <br>\nThis forces the model to correctly predict both labels.<br>\nMixup is applied with probability 0.5 and I used 5 as parameter for the beta disctribution, which forces <code>a</code> to be close to 0.5.</p>\n<ul>\n<li>Improved cropping </li>\n</ul>\n<p>Instead of randomly selecting the crops, selecting them based on out-of-fold confidence was also used. The confidence at time <code>t</code> is the probability of the ground truth class predicted on the 5 second crop starting from <code>t</code>.</p>\n<h4>Modeling</h4>\n<p>We used 4 models in the final blend :</p>\n<ul>\n<li>resnext50 [0.606 Public LB -&gt; 0.675 Private] - trained with the additional audio recordings.</li>\n<li>resnext101 [0.606 Public LB -&gt; 0.661 Private] - trained with the additional audio recordings as well.</li>\n<li>resnest50 [0.612 Public LB -&gt; 0.641 Private] </li>\n<li>resnest50 [0.617 Public LB -&gt; 0.620 Private] - trained with improved crops </li>\n</ul>\n<p>Turns out that training with more data was the key, and that both our resnest were overfitting to public LB. Thanks to people who shared the datasets ! </p>\n<p>They were trained for 40 epochs (30 if the external data is used), with a linear scheduler with 0.05 warmup proportion. Learning rate is 0.001 with a batch size of 64 for the small models, and both are divided by two for the resnext101 one, in order to fit in a single 2080Ti.</p>\n<p>We had no reliable validation strategy, and used stratified 5 folds where the prediction is made on the 5 first second of the validation audios.</p>\n<h4>Post-processing</h4>\n<p>We used 0.5 as our threshold <code>T</code>.</p>\n<ul>\n<li>First step is to zero the predictions lower than <code>T</code></li>\n<li>Then, we aggregate the predictions<ul>\n<li>For the sites 1 and 2, the prediction of a given window is summed with those of the two neighbouring windows. </li>\n<li>For the site 3, we aggregate using the max</li></ul></li>\n<li>The <code>n</code> most likely birds with probability higher than <code>T</code> are kept<ul>\n<li><code>n = 3</code> for the sites 1 and 2</li>\n<li><code>n</code> is chose according to the audio length for the site 3.</li></ul></li>\n</ul>\n<h4>Code</h4>\n<p>Everything is fully available :</p>\n<ul>\n<li>Inference : <a href=\"https://www.kaggle.com/theoviel/inference-theo?scriptVersionId=42527667\" target=\"_blank\">https://www.kaggle.com/theoviel/inference-theo?scriptVersionId=42527667</a> </li>\n<li>Train in Kaggle kernels : <a href=\"https://www.kaggle.com/theoviel/training-theo-3\" target=\"_blank\">https://www.kaggle.com/theoviel/training-theo-3</a> (code is a bit dirty but directly usable)</li>\n<li>Github : <a href=\"https://github.com/TheoViel/kaggle_birdcall_identification\" target=\"_blank\">https://github.com/TheoViel/kaggle_birdcall_identification</a>  (code is cleaned and documented)</li>\n</ul>\n<h4>Final words</h4>\n<p>As we had no proper validation scheme, private LB was really a coinflip for us. The top 3 is a nice surprise ! Our best submission is actually the 5-fold ResNext50 alone, which was quite unpredictable.</p>\n<p>Thanks for reading !</p>\n<p>(topic will probably be updated)</p>",
  "messages": [
    {
      "id": "1012134",
      "postDate": "09/16/2020 00:14:52",
      "content": "<p>Very glad to end my journey to Kaggle GM with a 3rd place, congratz to my teamates and everybody who made it to the end !</p>\n<p>Our solution has three main aspects : data augmentation, modeling and post-processing</p>\n<h4>Data Augmentation</h4>\n<p>Data augmentation is the key to reduce the discrepancy between train and test. We start by randomly cropping 5 seconds of the audio and then add aggressive noise augmentations :</p>\n<ul>\n<li>Gaussian noise</li>\n</ul>\n<p>With a soud to noise ratio up to 0.5</p>\n<ul>\n<li>Background noise</li>\n</ul>\n<p>We randomly chose 5 seconds of a sample in the background dataset available <a href=\"https://www.kaggle.com/theoviel/bird-backgrounds\" target=\"_blank\">here</a>. This dataset contains samples without bircall from the example test audios from the competition data, and some samples from the freesound bird detection challenge that were manually selected.</p>\n<ul>\n<li>Modified Mixup</li>\n</ul>\n<p>Mixup creates a combination of a batch <code>x1</code> and its shuffled version <code>x2</code> : <code>x = a * x1 + (1 - a) * x2</code> where <code>a</code> is samples with a beta distribution. <br>\nThen, instead of using the classical objective for mixup, we define the target associated to <code>x</code> as the union of the original targets. <br>\nThis forces the model to correctly predict both labels.<br>\nMixup is applied with probability 0.5 and I used 5 as parameter for the beta disctribution, which forces <code>a</code> to be close to 0.5.</p>\n<ul>\n<li>Improved cropping </li>\n</ul>\n<p>Instead of randomly selecting the crops, selecting them based on out-of-fold confidence was also used. The confidence at time <code>t</code> is the probability of the ground truth class predicted on the 5 second crop starting from <code>t</code>.</p>\n<h4>Modeling</h4>\n<p>We used 4 models in the final blend :</p>\n<ul>\n<li>resnext50 [0.606 Public LB -&gt; 0.675 Private] - trained with the additional audio recordings.</li>\n<li>resnext101 [0.606 Public LB -&gt; 0.661 Private] - trained with the additional audio recordings as well.</li>\n<li>resnest50 [0.612 Public LB -&gt; 0.641 Private] </li>\n<li>resnest50 [0.617 Public LB -&gt; 0.620 Private] - trained with improved crops </li>\n</ul>\n<p>Turns out that training with more data was the key, and that both our resnest were overfitting to public LB. Thanks to people who shared the datasets ! </p>\n<p>They were trained for 40 epochs (30 if the external data is used), with a linear scheduler with 0.05 warmup proportion. Learning rate is 0.001 with a batch size of 64 for the small models, and both are divided by two for the resnext101 one, in order to fit in a single 2080Ti.</p>\n<p>We had no reliable validation strategy, and used stratified 5 folds where the prediction is made on the 5 first second of the validation audios.</p>\n<h4>Post-processing</h4>\n<p>We used 0.5 as our threshold <code>T</code>.</p>\n<ul>\n<li>First step is to zero the predictions lower than <code>T</code></li>\n<li>Then, we aggregate the predictions<ul>\n<li>For the sites 1 and 2, the prediction of a given window is summed with those of the two neighbouring windows. </li>\n<li>For the site 3, we aggregate using the max</li></ul></li>\n<li>The <code>n</code> most likely birds with probability higher than <code>T</code> are kept<ul>\n<li><code>n = 3</code> for the sites 1 and 2</li>\n<li><code>n</code> is chose according to the audio length for the site 3.</li></ul></li>\n</ul>\n<h4>Code</h4>\n<p>Everything is fully available :</p>\n<ul>\n<li>Inference : <a href=\"https://www.kaggle.com/theoviel/inference-theo?scriptVersionId=42527667\" target=\"_blank\">https://www.kaggle.com/theoviel/inference-theo?scriptVersionId=42527667</a> </li>\n<li>Train in Kaggle kernels : <a href=\"https://www.kaggle.com/theoviel/training-theo-3\" target=\"_blank\">https://www.kaggle.com/theoviel/training-theo-3</a> (code is a bit dirty but directly usable)</li>\n<li>Github : <a href=\"https://github.com/TheoViel/kaggle_birdcall_identification\" target=\"_blank\">https://github.com/TheoViel/kaggle_birdcall_identification</a>  (code is cleaned and documented)</li>\n</ul>\n<h4>Final words</h4>\n<p>As we had no proper validation scheme, private LB was really a coinflip for us. The top 3 is a nice surprise ! Our best submission is actually the 5-fold ResNext50 alone, which was quite unpredictable.</p>\n<p>Thanks for reading !</p>\n<p>(topic will probably be updated)</p>",
      "rawMarkdown": "Very glad to end my journey to Kaggle GM with a 3rd place, congratz to my teamates and everybody who made it to the end !\n\nOur solution has three main aspects : data augmentation, modeling and post-processing\n\n#### Data Augmentation\n\nData augmentation is the key to reduce the discrepancy between train and test. We start by randomly cropping 5 seconds of the audio and then add aggressive noise augmentations :\n- Gaussian noise\n\nWith a soud to noise ratio up to 0.5\n\n- Background noise\n\nWe randomly chose 5 seconds of a sample in the background dataset available [here](https://www.kaggle.com/theoviel/bird-backgrounds). This dataset contains samples without bircall from the example test audios from the competition data, and some samples from the freesound bird detection challenge that were manually selected.\n\n- Modified Mixup\n\nMixup creates a combination of a batch `x1` and its shuffled version `x2` : `x = a * x1 + (1 - a) * x2` where `a` is samples with a beta distribution. \nThen, instead of using the classical objective for mixup, we define the target associated to `x` as the union of the original targets. \nThis forces the model to correctly predict both labels.\nMixup is applied with probability 0.5 and I used 5 as parameter for the beta disctribution, which forces `a` to be close to 0.5.\n\n- Improved cropping \n\nInstead of randomly selecting the crops, selecting them based on out-of-fold confidence was also used. The confidence at time `t` is the probability of the ground truth class predicted on the 5 second crop starting from `t`.\n\n#### Modeling\n\nWe used 4 models in the final blend :\n\n- resnext50 [0.606 Public LB -> 0.675 Private] - trained with the additional audio recordings.\n- resnext101 [0.606 Public LB -> 0.661 Private] - trained with the additional audio recordings as well.\n- resnest50 [0.612 Public LB -> 0.641 Private] \n- resnest50 [0.617 Public LB -> 0.620 Private] - trained with improved crops \n\nTurns out that training with more data was the key, and that both our resnest were overfitting to public LB. Thanks to people who shared the datasets ! \n\nThey were trained for 40 epochs (30 if the external data is used), with a linear scheduler with 0.05 warmup proportion. Learning rate is 0.001 with a batch size of 64 for the small models, and both are divided by two for the resnext101 one, in order to fit in a single 2080Ti.\n\nWe had no reliable validation strategy, and used stratified 5 folds where the prediction is made on the 5 first second of the validation audios.\n\n#### Post-processing\n\nWe used 0.5 as our threshold `T`.\n\n- First step is to zero the predictions lower than `T`\n- Then, we aggregate the predictions\n  - For the sites 1 and 2, the prediction of a given window is summed with those of the two neighbouring windows. \n  - For the site 3, we aggregate using the max\n- The `n` most likely birds with probability higher than `T` are kept\n  - `n = 3` for the sites 1 and 2\n  - `n` is chose according to the audio length for the site 3.\n\n#### Code\n\nEverything is fully available :\n\n- Inference : https://www.kaggle.com/theoviel/inference-theo?scriptVersionId=42527667 \n- Train in Kaggle kernels : https://www.kaggle.com/theoviel/training-theo-3 (code is a bit dirty but directly usable)\n- Github : https://github.com/TheoViel/kaggle_birdcall_identification  (code is cleaned and documented)\n\n\n#### Final words\n\nAs we had no proper validation scheme, private LB was really a coinflip for us. The top 3 is a nice surprise ! Our best submission is actually the 5-fold ResNext50 alone, which was quite unpredictable.\n\nThanks for reading !\n\n(topic will probably be updated)",
      "votes": null
    },
    {
      "id": "1012139",
      "postDate": "09/16/2020 00:16:47",
      "content": "<p>Congrats! 3rd place is a great accomplishment! And also thank you very much for posting your solution. Super helpful!</p>",
      "rawMarkdown": "Congrats! 3rd place is a great accomplishment! And also thank you very much for posting your solution. Super helpful!",
      "votes": null
    },
    {
      "id": "1012143",
      "postDate": "09/16/2020 00:19:27",
      "content": "<p>Congrats on the result and GM title!  Do you know how much you get from postprocessing (limiting to at most 3 birds)?</p>",
      "rawMarkdown": "Congrats on the result and GM title!  Do you know how much you get from postprocessing (limiting to at most 3 birds)?",
      "votes": null
    },
    {
      "id": "1012146",
      "postDate": "09/16/2020 00:21:10",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a>  Congratulations with getting top 3 and becoming GM </p>",
      "rawMarkdown": "theoviel  Congratulations with getting top 3 and becoming GM",
      "votes": null
    },
    {
      "id": "1012148",
      "postDate": "09/16/2020 00:23:12",
      "content": "<p>Congratulations!</p>",
      "rawMarkdown": "Congratulations!",
      "votes": null
    },
    {
      "id": "1012151",
      "postDate": "09/16/2020 00:23:59",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/holgerklinck\" target=\"_blank\">@holgerklinck</a>, means a lot ! We hope our solution will be useful to CCB </p>",
      "rawMarkdown": "Thanks @holgerklinck, means a lot ! We hope our solution will be useful to CCB",
      "votes": null
    },
    {
      "id": "1012153",
      "postDate": "09/16/2020 00:25:13",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/cpmpml\" target=\"_blank\">@cpmpml</a>, glad to join you in the French GM club ! </p>\n<p>I'm not sure about that, I guess I'll run a sub without it to give you the answer</p>",
      "rawMarkdown": "Thanks @cpmpml, glad to join you in the French GM club ! \n\nI'm not sure about that, I guess I'll run a sub without it to give you the answer",
      "votes": null
    },
    {
      "id": "1012155",
      "postDate": "09/16/2020 00:26:52",
      "content": "<p>Thanks a lot, that would not have been possible without you, and the other people I teamed up with in previous comps. </p>\n<p>I'd like to read about your team's solution though, that +0.03 jump on public at the end was impressive.</p>",
      "rawMarkdown": "Thanks a lot, that would not have been possible without you, and the other people I teamed up with in previous comps. \n\nI'd like to read about your team's solution though, that +0.03 jump on public at the end was impressive.",
      "votes": null
    },
    {
      "id": "1012156",
      "postDate": "09/16/2020 00:27:07",
      "content": "<p>Congratulations!!!!</p>",
      "rawMarkdown": "Congratulations!!!!",
      "votes": null
    },
    {
      "id": "1012157",
      "postDate": "09/16/2020 00:27:26",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/mpware\" target=\"_blank\">@mpware</a> !</p>",
      "rawMarkdown": "Thanks @mpware !",
      "votes": null
    },
    {
      "id": "1012158",
      "postDate": "09/16/2020 00:27:42",
      "content": "<p>I always ask about postprocessing because I suck at it, I never think of what can be done there…  I hope I'll learn one day ;)  Yours is simple; which makes it very valuable.</p>",
      "rawMarkdown": "I always ask about postprocessing because I suck at it, I never think of what can be done there...  I hope I'll learn one day ;)  Yours is simple; which makes it very valuable.",
      "votes": null
    },
    {
      "id": "1012160",
      "postDate": "09/16/2020 00:28:34",
      "content": "<p>Congrats <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a>  for the hard work and the GM title !</p>",
      "rawMarkdown": "Congrats @theoviel  for the hard work and the GM title !",
      "votes": null
    },
    {
      "id": "1012167",
      "postDate": "09/16/2020 00:32:37",
      "content": "<p>Congrats <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> and team. Thanks for sharing your solution.</p>\n<p>Congrats <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> on becoming GM with this gold medal. Sweet!!!</p>",
      "rawMarkdown": "Congrats @theoviel and team. Thanks for sharing your solution.\n\nCongrats @theoviel on becoming GM with this gold medal. Sweet!!!",
      "votes": null
    },
    {
      "id": "1012171",
      "postDate": "09/16/2020 00:34:23",
      "content": "<p>Merci <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> !</p>",
      "rawMarkdown": "Merci @kneroma !",
      "votes": null
    },
    {
      "id": "1012176",
      "postDate": "09/16/2020 00:36:49",
      "content": "<p>Congrats Team on result and you becoming GM <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> </p>",
      "rawMarkdown": "Congrats Team on result and you becoming GM @theoviel",
      "votes": null
    },
    {
      "id": "1012180",
      "postDate": "09/16/2020 00:40:07",
      "content": "<p>thanks for sharing.</p>",
      "rawMarkdown": "thanks for sharing.",
      "votes": null
    },
    {
      "id": "1012184",
      "postDate": "09/16/2020 00:43:39",
      "content": "<p>Thanks, I will try to write more details in a separate thread. I was using a quite different method (not doing 5s chunk predictions like the most of the teams). Though, it seams such an approach was not as good at private LB, or we just got super lucky at public LB getting to 0.628 in a few submissions. Other things are similar to your write up: noise is the key, and I also used your test noise dataset, thanks for posting it. Modified MixUp is the thing I also tried, but didn't work well at the beginning. Too bad that I joined the competition just a few weeks before the end, and couldn't properly check all the things(</p>",
      "rawMarkdown": "Thanks, I will try to write more details in a separate thread. I was using a quite different method (not doing 5s chunk predictions like the most of the teams). Though, it seams such an approach was not as good at private LB, or we just got super lucky at public LB getting to 0.628 in a few submissions. Other things are similar to your write up: noise is the key, and I also used your test noise dataset, thanks for posting it. Modified MixUp is the thing I also tried, but didn't work well at the beginning. Too bad that I joined the competition just a few weeks before the end, and couldn't properly check all the things(",
      "votes": null
    },
    {
      "id": "1012185",
      "postDate": "09/16/2020 00:44:05",
      "content": "<p>All the merit goes <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> for the idea :) </p>",
      "rawMarkdown": "All the merit goes @kneroma for the idea :)",
      "votes": null
    },
    {
      "id": "1012187",
      "postDate": "09/16/2020 00:45:13",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> and your team for getting 3rd place and also for you becoming a Grandmaster!</p>\n<p>I had a lot of fun fighting with your team on LB, thanks a lot!</p>",
      "rawMarkdown": "Congratulations @theoviel and your team for getting 3rd place and also for you becoming a Grandmaster!\n\nI had a lot of fun fighting with your team on LB, thanks a lot!",
      "votes": null
    },
    {
      "id": "1012189",
      "postDate": "09/16/2020 00:46:57",
      "content": "<p>Thanks again <a href=\"https://www.kaggle.com/hidehisaarai1213\" target=\"_blank\">@hidehisaarai1213</a> <br>\nWe're genuinely surprised we won the fight though !</p>",
      "rawMarkdown": "Thanks again @hidehisaarai1213 \nWe're genuinely surprised we won the fight though !",
      "votes": null
    },
    {
      "id": "1012201",
      "postDate": "09/16/2020 00:52:56",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> , incredible work !</p>",
      "rawMarkdown": "Congratulations @theoviel , incredible work !",
      "votes": null
    },
    {
      "id": "1012258",
      "postDate": "09/16/2020 02:05:41",
      "content": "<p>congratulation</p>",
      "rawMarkdown": "congratulation",
      "votes": null
    },
    {
      "id": "1012302",
      "postDate": "09/16/2020 02:43:24",
      "content": "<blockquote>\n  <p>Modified Mixup</p>\n</blockquote>\n<p>This is something quite interesting. I just couldn't make Mixup work well, but your approach is smart</p>",
      "rawMarkdown": "> Modified Mixup\n\nThis is something quite interesting. I just couldn't make Mixup work well, but your approach is smart",
      "votes": null
    },
    {
      "id": "1012418",
      "postDate": "09/16/2020 04:54:37",
      "content": "<p>Congrats theo for your valuable contribution and for joining french GM club 👊👊👊</p>",
      "rawMarkdown": "Congrats theo for your valuable contribution and for joining french GM club 👊👊👊",
      "votes": null
    },
    {
      "id": "1012507",
      "postDate": "09/16/2020 06:00:50",
      "content": "<p>Congratulations for GM and 3rd  :) Thanks for sharing</p>",
      "rawMarkdown": "Congratulations for GM and 3rd  :) Thanks for sharing",
      "votes": null
    },
    {
      "id": "1012573",
      "postDate": "09/16/2020 06:58:19",
      "content": "<p>2nd French competition GM, bravo!</p>",
      "rawMarkdown": "2nd French competition GM, bravo!",
      "votes": null
    },
    {
      "id": "1012580",
      "postDate": "09/16/2020 07:01:56",
      "content": "<p>Congrats on GM and your team placing 3rd.</p>",
      "rawMarkdown": "Congrats on GM and your team placing 3rd.",
      "votes": null
    },
    {
      "id": "1012627",
      "postDate": "09/16/2020 07:35:04",
      "content": "<p>Good Work !!!! keep the Blogs On the way .</p>",
      "rawMarkdown": "Good Work !!!! keep the Blogs On the way .",
      "votes": null
    },
    {
      "id": "1012672",
      "postDate": "09/16/2020 08:08:11",
      "content": "<p>Thanks ! Congratz on the win !</p>",
      "rawMarkdown": "Thanks ! Congratz on the win !",
      "votes": null
    },
    {
      "id": "1012673",
      "postDate": "09/16/2020 08:08:45",
      "content": "<p>Merci <a href=\"https://www.kaggle.com/ulrich07\" target=\"_blank\">@ulrich07</a> !</p>",
      "rawMarkdown": "Merci @ulrich07 !",
      "votes": null
    },
    {
      "id": "1012679",
      "postDate": "09/16/2020 08:11:41",
      "content": "<p>One of the few good ideas I had in this comp :) </p>",
      "rawMarkdown": "One of the few good ideas I had in this comp :)",
      "votes": null
    },
    {
      "id": "1012683",
      "postDate": "09/16/2020 08:12:33",
      "content": "<p>Thanks !</p>\n<p>3rd actually, there's <a href=\"https://www.kaggle.com/nhlx5haze\" target=\"_blank\">@nhlx5haze</a> as well :)</p>",
      "rawMarkdown": "Thanks !\n\n3rd actually, there's @nhlx5haze as well :)",
      "votes": null
    },
    {
      "id": "1012686",
      "postDate": "09/16/2020 08:15:00",
      "content": "<blockquote>\n  <p>Do you know how much you get from postprocessing (limiting to at most 3 birds)</p>\n</blockquote>\n<p>Score is the same, so this part of our post-processing is useless aha</p>",
      "rawMarkdown": "> Do you know how much you get from postprocessing (limiting to at most 3 birds)\n\nScore is the same, so this part of our post-processing is useless aha",
      "votes": null
    },
    {
      "id": "1012783",
      "postDate": "09/16/2020 09:33:39",
      "content": "<p>Excellent !! Great Sharing. Thank you</p>",
      "rawMarkdown": "Excellent !! Great Sharing. Thank you",
      "votes": null
    },
    {
      "id": "1013233",
      "postDate": "09/16/2020 15:21:10",
      "content": "<p>Congrats! We are waiting for the update.</p>",
      "rawMarkdown": "Congrats! We are waiting for the update.",
      "votes": null
    },
    {
      "id": "1014111",
      "postDate": "09/17/2020 08:09:41",
      "content": "<p>Insightful!</p>",
      "rawMarkdown": "Insightful!",
      "votes": null
    },
    {
      "id": "1014112",
      "postDate": "09/17/2020 08:11:06",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> <br>\nCongratulations to your  team on the win and your upgrade to GM status.<br>\nThanks for sharing your work. </p>",
      "rawMarkdown": "theoviel \nCongratulations to your  team on the win and your upgrade to GM status.\nThanks for sharing your work.",
      "votes": null
    },
    {
      "id": "1014131",
      "postDate": "09/17/2020 08:26:03",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/youhanlee\" target=\"_blank\">@youhanlee</a> ! Hopefully you'll get that GM title soon :) </p>",
      "rawMarkdown": "Thanks @youhanlee ! Hopefully you'll get that GM title soon :)",
      "votes": null
    },
    {
      "id": "1014132",
      "postDate": "09/17/2020 08:26:29",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/muskanchaddha2112\" target=\"_blank\">@muskanchaddha2112</a> , I will</p>",
      "rawMarkdown": "Thanks @muskanchaddha2112 , I will",
      "votes": null
    },
    {
      "id": "1014134",
      "postDate": "09/17/2020 08:26:51",
      "content": "<p>Thanks ! I need to add some stuff indeed aha</p>",
      "rawMarkdown": "Thanks ! I need to add some stuff indeed aha",
      "votes": null
    },
    {
      "id": "1014136",
      "postDate": "09/17/2020 08:27:17",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/watzisname\" target=\"_blank\">@watzisname</a> </p>",
      "rawMarkdown": "Thanks @watzisname",
      "votes": null
    },
    {
      "id": "1014141",
      "postDate": "09/17/2020 08:27:47",
      "content": "<p>Thanks, and you're welcome !</p>",
      "rawMarkdown": "Thanks, and you're welcome !",
      "votes": null
    },
    {
      "id": "1014142",
      "postDate": "09/17/2020 08:27:59",
      "content": "<p>Thanks a lot <a href=\"https://www.kaggle.com/alanchn31\" target=\"_blank\">@alanchn31</a> </p>",
      "rawMarkdown": "Thanks a lot @alanchn31",
      "votes": null
    },
    {
      "id": "1014143",
      "postDate": "09/17/2020 08:28:07",
      "content": "<p>Thank you !</p>",
      "rawMarkdown": "Thank you !",
      "votes": null
    },
    {
      "id": "1014145",
      "postDate": "09/17/2020 08:28:28",
      "content": "<p>Thanks, and congratz on the strong finish !</p>",
      "rawMarkdown": "Thanks, and congratz on the strong finish !",
      "votes": null
    },
    {
      "id": "1014146",
      "postDate": "09/17/2020 08:28:35",
      "content": "<p>No problem :)</p>",
      "rawMarkdown": "No problem :)",
      "votes": null
    },
    {
      "id": "1014147",
      "postDate": "09/17/2020 08:28:55",
      "content": "<p>Double thank you <a href=\"https://www.kaggle.com/sheriytm\" target=\"_blank\">@sheriytm</a> !</p>",
      "rawMarkdown": "Double thank you @sheriytm !",
      "votes": null
    },
    {
      "id": "1014148",
      "postDate": "09/17/2020 08:29:14",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/fiyeroleung\" target=\"_blank\">@fiyeroleung</a> and congratz on the silver !</p>",
      "rawMarkdown": "Thanks @fiyeroleung and congratz on the silver !",
      "votes": null
    },
    {
      "id": "1014293",
      "postDate": "09/17/2020 10:22:59",
      "content": "<p>very impressive :)</p>",
      "rawMarkdown": "very impressive :)",
      "votes": null
    },
    {
      "id": "1015251",
      "postDate": "09/18/2020 04:40:03",
      "content": "<p>Congratulations to your Grand Master upgrade.  </p>",
      "rawMarkdown": "Congratulations to your Grand Master upgrade.",
      "votes": null
    },
    {
      "id": "1015333",
      "postDate": "09/18/2020 05:57:47",
      "content": "<p>Congratulations!</p>",
      "rawMarkdown": "Congratulations!",
      "votes": null
    },
    {
      "id": "1016560",
      "postDate": "09/19/2020 05:02:35",
      "content": "<p>Excellent !! </p>",
      "rawMarkdown": "Excellent !!",
      "votes": null
    },
    {
      "id": "1016675",
      "postDate": "09/19/2020 06:43:58",
      "content": "<p>Congratulations and very helpful </p>",
      "rawMarkdown": "Congratulations and very helpful",
      "votes": null
    },
    {
      "id": "1016708",
      "postDate": "09/19/2020 07:14:11",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> Congratulations to your team, and thank you for sharing solution notebooks.<br>\nI'm specifically interested in the \"improved cropping\", but I could not figure out which part of code is doing that.<br>\nI appreciate if you could show me about it. Thanks again!</p>",
      "rawMarkdown": "theoviel Congratulations to your team, and thank you for sharing solution notebooks.\nI'm specifically interested in the \"improved cropping\", but I could not figure out which part of code is doing that.\nI appreciate if you could show me about it. Thanks again!",
      "votes": null
    },
    {
      "id": "1016761",
      "postDate": "09/19/2020 08:09:24",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/daisukelab\" target=\"_blank\">@daisukelab</a> </p>\n<p>Confidences are computed in the  <code>__getitem__</code> function of the dataset, and the cropping is done in the <code>crop_or_pad</code>  where the start second of the crop is sampled using the <code>probs</code> distribution</p>\n<p><a href=\"https://github.com/TheoViel/kaggle_birdcall_identification/tree/master/src/data\" target=\"_blank\">Link</a></p>",
      "rawMarkdown": "Thanks @daisukelab \n\nConfidences are computed in the  `__getitem__` function of the dataset, and the cropping is done in the `crop_or_pad`  where the start second of the crop is sampled using the `probs` distribution\n\n[Link](https://github.com/TheoViel/kaggle_birdcall_identification/tree/master/src/data)",
      "votes": null
    },
    {
      "id": "1017973",
      "postDate": "09/19/2020 11:14:49",
      "content": "<p>Thank you <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> it is so simple, amazing!<br>\n<a href=\"https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/dataset.py#L75\" target=\"_blank\">https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/dataset.py#L75</a><br>\n<a href=\"https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/transforms.py#L88\" target=\"_blank\">https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/transforms.py#L88</a><br>\nI've got to know how you/team have done, I really appreciate.<br>\nTruly, \"very polite\" as described on your icon! ;) Thanks again, congratulations!</p>",
      "rawMarkdown": "Thank you @theoviel it is so simple, amazing!\nhttps://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/dataset.py#L75\nhttps://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/transforms.py#L88\nI've got to know how you/team have done, I really appreciate.\nTruly, \"very polite\" as described on your icon! ;) Thanks again, congratulations!",
      "votes": null
    },
    {
      "id": "1018014",
      "postDate": "09/19/2020 11:42:52",
      "content": "<p>good work </p>",
      "rawMarkdown": "good work",
      "votes": null
    },
    {
      "id": "1018028",
      "postDate": "09/19/2020 11:58:45",
      "content": "<p>Congrats to GM and team mates. Good writeup.</p>",
      "rawMarkdown": "Congrats to GM and team mates. Good writeup.",
      "votes": null
    },
    {
      "id": "1018137",
      "postDate": "09/19/2020 13:21:49",
      "content": "<p>Congratulations and thank you for sharing this.. I hope it will be used in later competitions..!!!👍 👍 </p>",
      "rawMarkdown": "Congratulations and thank you for sharing this.. I hope it will be used in later competitions..!!!👍 👍",
      "votes": null
    },
    {
      "id": "1018338",
      "postDate": "09/19/2020 16:11:08",
      "content": "<p>You're welcome :)</p>",
      "rawMarkdown": "You're welcome :)",
      "votes": null
    },
    {
      "id": "1018582",
      "postDate": "09/19/2020 18:53:55",
      "content": "<p>Congratulations!!!!</p>",
      "rawMarkdown": "Congratulations!!!!",
      "votes": null
    },
    {
      "id": "1018811",
      "postDate": "09/20/2020 02:19:48",
      "content": "<p>Thank you for this graceful and well informative sharing post. Congratulations to the 3rd place <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> 🎉🙂👏! Well deserved👍!</p>",
      "rawMarkdown": "Thank you for this graceful and well informative sharing post. Congratulations to the 3rd place @theoviel 🎉🙂👏! Well deserved👍!",
      "votes": null
    },
    {
      "id": "1018921",
      "postDate": "09/20/2020 05:00:26",
      "content": "<p>Congratulations!!</p>",
      "rawMarkdown": "Congratulations!!",
      "votes": null
    },
    {
      "id": "1019038",
      "postDate": "09/20/2020 06:40:09",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> Congratulations to your Grandmaster upgrade 🎉</p>",
      "rawMarkdown": "theoviel Congratulations to your Grandmaster upgrade 🎉",
      "votes": null
    },
    {
      "id": "1019238",
      "postDate": "09/20/2020 09:58:25",
      "content": "<p>Congratulations and thanks for the writeup.</p>",
      "rawMarkdown": "Congratulations and thanks for the writeup.",
      "votes": null
    },
    {
      "id": "1019272",
      "postDate": "09/20/2020 10:22:40",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/wochidadonggua\" target=\"_blank\">@wochidadonggua</a> !<br>\nIt didn't took me too long to catch up with you :)</p>",
      "rawMarkdown": "Thanks @wochidadonggua !\nIt didn't took me too long to catch up with you :)",
      "votes": null
    },
    {
      "id": "1019391",
      "postDate": "09/20/2020 12:00:35",
      "content": "<p>Thanks for the share! I have two questions about the mixup data augmentation technique:</p>\n<blockquote>\n  <p>Mixup creates a combination of a batch x1 and its shuffled version x2 : x = a * x1 + (1 - a) * x2 where a is samples with a beta distribution.<br>\n  Then, instead of using the classical objective for mixup, we define the target associated to x as the union of the original targets.</p>\n</blockquote>\n<ol>\n<li>What do you mean by \"union\"? Do you just add the the target vectors? Or do you apply the same technique(x = a * x1 + (1 - a) * x2) to the target vectors?</li>\n</ol>\n<blockquote>\n  <p>I used 5 as parameter for the beta disctribution, which forces a to be close to 0.5.</p>\n</blockquote>\n<ol>\n<li>The beta distribution has 2 parameters α and β, did you use 5 for both?</li>\n</ol>\n<p>Thanks for any help in advance!</p>",
      "rawMarkdown": "Thanks for the share! I have two questions about the mixup data augmentation technique:\n\n> Mixup creates a combination of a batch x1 and its shuffled version x2 : x = a * x1 + (1 - a) * x2 where a is samples with a beta distribution.\nThen, instead of using the classical objective for mixup, we define the target associated to x as the union of the original targets.\n\n1. What do you mean by \"union\"? Do you just add the the target vectors? Or do you apply the same technique(x = a * x1 + (1 - a) * x2) to the target vectors?\n\n>  I used 5 as parameter for the beta disctribution, which forces a to be close to 0.5.\n\n2. The beta distribution has 2 parameters α and β, did you use 5 for both?\n\nThanks for any help in advance!",
      "votes": null
    },
    {
      "id": "1019551",
      "postDate": "09/20/2020 14:13:56",
      "content": "<ul>\n<li><code>y = np.clip(y_1 + y_2, 0, 1)</code></li>\n<li>5 for both yes</li>\n</ul>",
      "rawMarkdown": "`y = np.clip(y_1 + y_2, 0, 1)`\n- 5 for both yes",
      "votes": null
    },
    {
      "id": "1020570",
      "postDate": "09/21/2020 09:13:26",
      "content": "<p>Congratulations and thank you for sharing!</p>",
      "rawMarkdown": "Congratulations and thank you for sharing!",
      "votes": null
    },
    {
      "id": "1026826",
      "postDate": "09/25/2020 15:21:21",
      "content": "<p>Congratulations!!<br>\nThanks for sharing you work</p>",
      "rawMarkdown": "Congratulations!!\nThanks for sharing you work",
      "votes": null
    },
    {
      "id": "1035543",
      "postDate": "10/02/2020 19:21:44",
      "content": "<p>Congratulations</p>",
      "rawMarkdown": "Congratulations",
      "votes": null
    },
    {
      "id": "1092912",
      "postDate": "11/27/2020 09:27:35",
      "content": "<p>Nice content. Learning so much from your code structure and solution.</p>",
      "rawMarkdown": "Nice content. Learning so much from your code structure and solution.",
      "votes": null
    },
    {
      "id": "1292526",
      "postDate": "05/04/2021 03:59:09",
      "content": "<p>These are indeed great suggestions. Few of them are helping in the current competition also.</p>",
      "rawMarkdown": "These are indeed great suggestions. Few of them are helping in the current competition also.",
      "votes": null
    },
    {
      "id": "1338832",
      "postDate": "06/06/2021 18:53:08",
      "content": "<p>Congrat for the gold and thanks for such a detailed write up!<br>\nI hope I am not too late to ask for a question:<br>\nIs ur mixup applied on audio space or spectrogram space?</p>",
      "rawMarkdown": "Congrat for the gold and thanks for such a detailed write up!\nI hope I am not too late to ask for a question:\nIs ur mixup applied on audio space or spectrogram space?",
      "votes": null
    },
    {
      "id": "1338834",
      "postDate": "06/06/2021 18:55:21",
      "content": "<p>Spectrogram space :)</p>",
      "rawMarkdown": "Spectrogram space :)",
      "votes": null
    },
    {
      "id": "1495857",
      "postDate": "08/29/2021 20:50:03",
      "content": "<p>Great work =))</p>",
      "rawMarkdown": "Great work =))",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1012139,
      "author_name": "holgerklinck",
      "author_url": "",
      "post_date": "09/16/2020 00:16:47",
      "content": "<p>Congrats! 3rd place is a great accomplishment! And also thank you very much for posting your solution. Super helpful!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012151,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:23:59",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/holgerklinck\" target=\"_blank\">@holgerklinck</a>, means a lot ! We hope our solution will be useful to CCB </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012143,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "09/16/2020 00:19:27",
      "content": "<p>Congrats on the result and GM title!  Do you know how much you get from postprocessing (limiting to at most 3 birds)?</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012153,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:25:13",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/cpmpml\" target=\"_blank\">@cpmpml</a>, glad to join you in the French GM club ! </p>\n<p>I'm not sure about that, I guess I'll run a sub without it to give you the answer</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012158,
          "author_name": "cpmpml",
          "author_url": "",
          "post_date": "09/16/2020 00:27:42",
          "content": "<p>I always ask about postprocessing because I suck at it, I never think of what can be done there…  I hope I'll learn one day ;)  Yours is simple; which makes it very valuable.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012185,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:44:05",
          "content": "<p>All the merit goes <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> for the idea :) </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012686,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 08:15:00",
          "content": "<blockquote>\n  <p>Do you know how much you get from postprocessing (limiting to at most 3 birds)</p>\n</blockquote>\n<p>Score is the same, so this part of our post-processing is useless aha</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012146,
      "author_name": "iafoss",
      "author_url": "",
      "post_date": "09/16/2020 00:21:10",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a>  Congratulations with getting top 3 and becoming GM </p>",
      "votes": null,
      "replies": [
        {
          "id": 1012155,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:26:52",
          "content": "<p>Thanks a lot, that would not have been possible without you, and the other people I teamed up with in previous comps. </p>\n<p>I'd like to read about your team's solution though, that +0.03 jump on public at the end was impressive.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012184,
          "author_name": "iafoss",
          "author_url": "",
          "post_date": "09/16/2020 00:43:39",
          "content": "<p>Thanks, I will try to write more details in a separate thread. I was using a quite different method (not doing 5s chunk predictions like the most of the teams). Though, it seams such an approach was not as good at private LB, or we just got super lucky at public LB getting to 0.628 in a few submissions. Other things are similar to your write up: noise is the key, and I also used your test noise dataset, thanks for posting it. Modified MixUp is the thing I also tried, but didn't work well at the beginning. Too bad that I joined the competition just a few weeks before the end, and couldn't properly check all the things(</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012148,
      "author_name": "mpware",
      "author_url": "",
      "post_date": "09/16/2020 00:23:12",
      "content": "<p>Congratulations!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012157,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:27:26",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/mpware\" target=\"_blank\">@mpware</a> !</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012573,
          "author_name": "juliencs",
          "author_url": "",
          "post_date": "09/16/2020 06:58:19",
          "content": "<p>2nd French competition GM, bravo!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012683,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 08:12:33",
          "content": "<p>Thanks !</p>\n<p>3rd actually, there's <a href=\"https://www.kaggle.com/nhlx5haze\" target=\"_blank\">@nhlx5haze</a> as well :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012156,
      "author_name": "fiyeroleung",
      "author_url": "",
      "post_date": "09/16/2020 00:27:07",
      "content": "<p>Congratulations!!!!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014148,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:29:14",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/fiyeroleung\" target=\"_blank\">@fiyeroleung</a> and congratz on the silver !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012160,
      "author_name": "kneroma",
      "author_url": "",
      "post_date": "09/16/2020 00:28:34",
      "content": "<p>Congrats <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a>  for the hard work and the GM title !</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012171,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:34:23",
          "content": "<p>Merci <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012167,
      "author_name": "sheriytm",
      "author_url": "",
      "post_date": "09/16/2020 00:32:37",
      "content": "<p>Congrats <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> and team. Thanks for sharing your solution.</p>\n<p>Congrats <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> on becoming GM with this gold medal. Sweet!!!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014147,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:28:55",
          "content": "<p>Double thank you <a href=\"https://www.kaggle.com/sheriytm\" target=\"_blank\">@sheriytm</a> !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012176,
      "author_name": "duykhanh99",
      "author_url": "",
      "post_date": "09/16/2020 00:36:49",
      "content": "<p>Congrats Team on result and you becoming GM <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> </p>",
      "votes": null,
      "replies": [
        {
          "id": 1014145,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:28:28",
          "content": "<p>Thanks, and congratz on the strong finish !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012180,
      "author_name": "tiandaye",
      "author_url": "",
      "post_date": "09/16/2020 00:40:07",
      "content": "<p>thanks for sharing.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014146,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:28:35",
          "content": "<p>No problem :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012187,
      "author_name": "hidehisaarai1213",
      "author_url": "",
      "post_date": "09/16/2020 00:45:13",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> and your team for getting 3rd place and also for you becoming a Grandmaster!</p>\n<p>I had a lot of fun fighting with your team on LB, thanks a lot!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012189,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 00:46:57",
          "content": "<p>Thanks again <a href=\"https://www.kaggle.com/hidehisaarai1213\" target=\"_blank\">@hidehisaarai1213</a> <br>\nWe're genuinely surprised we won the fight though !</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012302,
          "author_name": "hidehisaarai1213",
          "author_url": "",
          "post_date": "09/16/2020 02:43:24",
          "content": "<blockquote>\n  <p>Modified Mixup</p>\n</blockquote>\n<p>This is something quite interesting. I just couldn't make Mixup work well, but your approach is smart</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1012679,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 08:11:41",
          "content": "<p>One of the few good ideas I had in this comp :) </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012201,
      "author_name": "alanchn31",
      "author_url": "",
      "post_date": "09/16/2020 00:52:56",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> , incredible work !</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014142,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:27:59",
          "content": "<p>Thanks a lot <a href=\"https://www.kaggle.com/alanchn31\" target=\"_blank\">@alanchn31</a> </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012258,
      "author_name": "eshaindra",
      "author_url": "",
      "post_date": "09/16/2020 02:05:41",
      "content": "<p>congratulation</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014143,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:28:07",
          "content": "<p>Thank you !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012418,
      "author_name": "ulrich07",
      "author_url": "",
      "post_date": "09/16/2020 04:54:37",
      "content": "<p>Congrats theo for your valuable contribution and for joining french GM club 👊👊👊</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012673,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 08:08:45",
          "content": "<p>Merci <a href=\"https://www.kaggle.com/ulrich07\" target=\"_blank\">@ulrich07</a> !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012507,
      "author_name": "youhanlee",
      "author_url": "",
      "post_date": "09/16/2020 06:00:50",
      "content": "<p>Congratulations for GM and 3rd  :) Thanks for sharing</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014131,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:26:03",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/youhanlee\" target=\"_blank\">@youhanlee</a> ! Hopefully you'll get that GM title soon :) </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012580,
      "author_name": "taggatle",
      "author_url": "",
      "post_date": "09/16/2020 07:01:56",
      "content": "<p>Congrats on GM and your team placing 3rd.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1012672,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/16/2020 08:08:11",
          "content": "<p>Thanks ! Congratz on the win !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012627,
      "author_name": "muskanchaddha2112",
      "author_url": "",
      "post_date": "09/16/2020 07:35:04",
      "content": "<p>Good Work !!!! keep the Blogs On the way .</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014132,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:26:29",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/muskanchaddha2112\" target=\"_blank\">@muskanchaddha2112</a> , I will</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1012783,
      "author_name": "rjmanoj",
      "author_url": "",
      "post_date": "09/16/2020 09:33:39",
      "content": "<p>Excellent !! Great Sharing. Thank you</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014141,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:27:47",
          "content": "<p>Thanks, and you're welcome !</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1013233,
      "author_name": "varonos",
      "author_url": "",
      "post_date": "09/16/2020 15:21:10",
      "content": "<p>Congrats! We are waiting for the update.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1014134,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:26:51",
          "content": "<p>Thanks ! I need to add some stuff indeed aha</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1014111,
      "author_name": "mrinalgosain",
      "author_url": "",
      "post_date": "09/17/2020 08:09:41",
      "content": "<p>Insightful!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1014112,
      "author_name": "watzisname",
      "author_url": "",
      "post_date": "09/17/2020 08:11:06",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> <br>\nCongratulations to your  team on the win and your upgrade to GM status.<br>\nThanks for sharing your work. </p>",
      "votes": null,
      "replies": [
        {
          "id": 1014136,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/17/2020 08:27:17",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/watzisname\" target=\"_blank\">@watzisname</a> </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1014293,
      "author_name": "",
      "author_url": "",
      "post_date": "09/17/2020 10:22:59",
      "content": "<p>very impressive :)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1015251,
      "author_name": "subbuvolvosekar",
      "author_url": "",
      "post_date": "09/18/2020 04:40:03",
      "content": "<p>Congratulations to your Grand Master upgrade.  </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1015333,
      "author_name": "karanbatraa",
      "author_url": "",
      "post_date": "09/18/2020 05:57:47",
      "content": "<p>Congratulations!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1016560,
      "author_name": "emnikkhil",
      "author_url": "",
      "post_date": "09/19/2020 05:02:35",
      "content": "<p>Excellent !! </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1016675,
      "author_name": "yashgupta011",
      "author_url": "",
      "post_date": "09/19/2020 06:43:58",
      "content": "<p>Congratulations and very helpful </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1016708,
      "author_name": "daisukelab",
      "author_url": "",
      "post_date": "09/19/2020 07:14:11",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> Congratulations to your team, and thank you for sharing solution notebooks.<br>\nI'm specifically interested in the \"improved cropping\", but I could not figure out which part of code is doing that.<br>\nI appreciate if you could show me about it. Thanks again!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1016761,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/19/2020 08:09:24",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/daisukelab\" target=\"_blank\">@daisukelab</a> </p>\n<p>Confidences are computed in the  <code>__getitem__</code> function of the dataset, and the cropping is done in the <code>crop_or_pad</code>  where the start second of the crop is sampled using the <code>probs</code> distribution</p>\n<p><a href=\"https://github.com/TheoViel/kaggle_birdcall_identification/tree/master/src/data\" target=\"_blank\">Link</a></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1017973,
          "author_name": "daisukelab",
          "author_url": "",
          "post_date": "09/19/2020 11:14:49",
          "content": "<p>Thank you <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> it is so simple, amazing!<br>\n<a href=\"https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/dataset.py#L75\" target=\"_blank\">https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/dataset.py#L75</a><br>\n<a href=\"https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/transforms.py#L88\" target=\"_blank\">https://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/transforms.py#L88</a><br>\nI've got to know how you/team have done, I really appreciate.<br>\nTruly, \"very polite\" as described on your icon! ;) Thanks again, congratulations!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1018338,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/19/2020 16:11:08",
          "content": "<p>You're welcome :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1018014,
      "author_name": "syedyousuf",
      "author_url": "",
      "post_date": "09/19/2020 11:42:52",
      "content": "<p>good work </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1018028,
      "author_name": "arunprathap",
      "author_url": "",
      "post_date": "09/19/2020 11:58:45",
      "content": "<p>Congrats to GM and team mates. Good writeup.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1018137,
      "author_name": "redwankarimsony",
      "author_url": "",
      "post_date": "09/19/2020 13:21:49",
      "content": "<p>Congratulations and thank you for sharing this.. I hope it will be used in later competitions..!!!👍 👍 </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1018582,
      "author_name": "akash14",
      "author_url": "",
      "post_date": "09/19/2020 18:53:55",
      "content": "<p>Congratulations!!!!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1018811,
      "author_name": "hsinwenchang",
      "author_url": "",
      "post_date": "09/20/2020 02:19:48",
      "content": "<p>Thank you for this graceful and well informative sharing post. Congratulations to the 3rd place <a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> 🎉🙂👏! Well deserved👍!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1018921,
      "author_name": "handkobayashi",
      "author_url": "",
      "post_date": "09/20/2020 05:00:26",
      "content": "<p>Congratulations!!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1019038,
      "author_name": "wochidadonggua",
      "author_url": "",
      "post_date": "09/20/2020 06:40:09",
      "content": "<p><a href=\"https://www.kaggle.com/theoviel\" target=\"_blank\">@theoviel</a> Congratulations to your Grandmaster upgrade 🎉</p>",
      "votes": null,
      "replies": [
        {
          "id": 1019272,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/20/2020 10:22:40",
          "content": "<p>Thanks <a href=\"https://www.kaggle.com/wochidadonggua\" target=\"_blank\">@wochidadonggua</a> !<br>\nIt didn't took me too long to catch up with you :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1019238,
      "author_name": "deepchatterjeevns",
      "author_url": "",
      "post_date": "09/20/2020 09:58:25",
      "content": "<p>Congratulations and thanks for the writeup.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1019391,
      "author_name": "dunky11",
      "author_url": "",
      "post_date": "09/20/2020 12:00:35",
      "content": "<p>Thanks for the share! I have two questions about the mixup data augmentation technique:</p>\n<blockquote>\n  <p>Mixup creates a combination of a batch x1 and its shuffled version x2 : x = a * x1 + (1 - a) * x2 where a is samples with a beta distribution.<br>\n  Then, instead of using the classical objective for mixup, we define the target associated to x as the union of the original targets.</p>\n</blockquote>\n<ol>\n<li>What do you mean by \"union\"? Do you just add the the target vectors? Or do you apply the same technique(x = a * x1 + (1 - a) * x2) to the target vectors?</li>\n</ol>\n<blockquote>\n  <p>I used 5 as parameter for the beta disctribution, which forces a to be close to 0.5.</p>\n</blockquote>\n<ol>\n<li>The beta distribution has 2 parameters α and β, did you use 5 for both?</li>\n</ol>\n<p>Thanks for any help in advance!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1019551,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "09/20/2020 14:13:56",
          "content": "<ul>\n<li><code>y = np.clip(y_1 + y_2, 0, 1)</code></li>\n<li>5 for both yes</li>\n</ul>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1020570,
      "author_name": "yolisa",
      "author_url": "",
      "post_date": "09/21/2020 09:13:26",
      "content": "<p>Congratulations and thank you for sharing!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1026826,
      "author_name": "aditi81k",
      "author_url": "",
      "post_date": "09/25/2020 15:21:21",
      "content": "<p>Congratulations!!<br>\nThanks for sharing you work</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1092912,
      "author_name": "rizialdi",
      "author_url": "",
      "post_date": "11/27/2020 09:27:35",
      "content": "<p>Nice content. Learning so much from your code structure and solution.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1292526,
      "author_name": "sayancht92",
      "author_url": "",
      "post_date": "05/04/2021 03:59:09",
      "content": "<p>These are indeed great suggestions. Few of them are helping in the current competition also.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1338832,
      "author_name": "alexlwh",
      "author_url": "",
      "post_date": "06/06/2021 18:53:08",
      "content": "<p>Congrat for the gold and thanks for such a detailed write up!<br>\nI hope I am not too late to ask for a question:<br>\nIs ur mixup applied on audio space or spectrogram space?</p>",
      "votes": null,
      "replies": [
        {
          "id": 1338834,
          "author_name": "theoviel",
          "author_url": "",
          "post_date": "06/06/2021 18:55:21",
          "content": "<p>Spectrogram space :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1495857,
      "author_name": "top10chi3nthan",
      "author_url": "",
      "post_date": "08/29/2021 20:50:03",
      "content": "<p>Great work =))</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1035543,
      "author_name": "amithasanshuvo",
      "author_url": "",
      "post_date": "10/02/2020 19:21:44",
      "content": "<p>Congratulations</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1012134": "Very glad to end my journey to Kaggle GM with a 3rd place, congratz to my teamates and everybody who made it to the end !\n\nOur solution has three main aspects : data augmentation, modeling and post-processing\n\n#### Data Augmentation\n\nData augmentation is the key to reduce the discrepancy between train and test. We start by randomly cropping 5 seconds of the audio and then add aggressive noise augmentations :\n- Gaussian noise\n\nWith a soud to noise ratio up to 0.5\n\n- Background noise\n\nWe randomly chose 5 seconds of a sample in the background dataset available [here](https://www.kaggle.com/theoviel/bird-backgrounds). This dataset contains samples without bircall from the example test audios from the competition data, and some samples from the freesound bird detection challenge that were manually selected.\n\n- Modified Mixup\n\nMixup creates a combination of a batch `x1` and its shuffled version `x2` : `x = a * x1 + (1 - a) * x2` where `a` is samples with a beta distribution. \nThen, instead of using the classical objective for mixup, we define the target associated to `x` as the union of the original targets. \nThis forces the model to correctly predict both labels.\nMixup is applied with probability 0.5 and I used 5 as parameter for the beta disctribution, which forces `a` to be close to 0.5.\n\n- Improved cropping \n\nInstead of randomly selecting the crops, selecting them based on out-of-fold confidence was also used. The confidence at time `t` is the probability of the ground truth class predicted on the 5 second crop starting from `t`.\n\n#### Modeling\n\nWe used 4 models in the final blend :\n\n- resnext50 [0.606 Public LB -> 0.675 Private] - trained with the additional audio recordings.\n- resnext101 [0.606 Public LB -> 0.661 Private] - trained with the additional audio recordings as well.\n- resnest50 [0.612 Public LB -> 0.641 Private] \n- resnest50 [0.617 Public LB -> 0.620 Private] - trained with improved crops \n\nTurns out that training with more data was the key, and that both our resnest were overfitting to public LB. Thanks to people who shared the datasets ! \n\nThey were trained for 40 epochs (30 if the external data is used), with a linear scheduler with 0.05 warmup proportion. Learning rate is 0.001 with a batch size of 64 for the small models, and both are divided by two for the resnext101 one, in order to fit in a single 2080Ti.\n\nWe had no reliable validation strategy, and used stratified 5 folds where the prediction is made on the 5 first second of the validation audios.\n\n#### Post-processing\n\nWe used 0.5 as our threshold `T`.\n\n- First step is to zero the predictions lower than `T`\n- Then, we aggregate the predictions\n  - For the sites 1 and 2, the prediction of a given window is summed with those of the two neighbouring windows. \n  - For the site 3, we aggregate using the max\n- The `n` most likely birds with probability higher than `T` are kept\n  - `n = 3` for the sites 1 and 2\n  - `n` is chose according to the audio length for the site 3.\n\n#### Code\n\nEverything is fully available :\n\n- Inference : https://www.kaggle.com/theoviel/inference-theo?scriptVersionId=42527667 \n- Train in Kaggle kernels : https://www.kaggle.com/theoviel/training-theo-3 (code is a bit dirty but directly usable)\n- Github : https://github.com/TheoViel/kaggle_birdcall_identification  (code is cleaned and documented)\n\n\n#### Final words\n\nAs we had no proper validation scheme, private LB was really a coinflip for us. The top 3 is a nice surprise ! Our best submission is actually the 5-fold ResNext50 alone, which was quite unpredictable.\n\nThanks for reading !\n\n(topic will probably be updated)",
    "1012139": "Congrats! 3rd place is a great accomplishment! And also thank you very much for posting your solution. Super helpful!",
    "1012143": "Congrats on the result and GM title!  Do you know how much you get from postprocessing (limiting to at most 3 birds)?",
    "1012146": "theoviel  Congratulations with getting top 3 and becoming GM",
    "1012148": "Congratulations!",
    "1012151": "Thanks @holgerklinck, means a lot ! We hope our solution will be useful to CCB",
    "1012153": "Thanks @cpmpml, glad to join you in the French GM club ! \n\nI'm not sure about that, I guess I'll run a sub without it to give you the answer",
    "1012155": "Thanks a lot, that would not have been possible without you, and the other people I teamed up with in previous comps. \n\nI'd like to read about your team's solution though, that +0.03 jump on public at the end was impressive.",
    "1012156": "Congratulations!!!!",
    "1012157": "Thanks @mpware !",
    "1012158": "I always ask about postprocessing because I suck at it, I never think of what can be done there...  I hope I'll learn one day ;)  Yours is simple; which makes it very valuable.",
    "1012160": "Congrats @theoviel  for the hard work and the GM title !",
    "1012167": "Congrats @theoviel and team. Thanks for sharing your solution.\n\nCongrats @theoviel on becoming GM with this gold medal. Sweet!!!",
    "1012171": "Merci @kneroma !",
    "1012176": "Congrats Team on result and you becoming GM @theoviel",
    "1012180": "thanks for sharing.",
    "1012184": "Thanks, I will try to write more details in a separate thread. I was using a quite different method (not doing 5s chunk predictions like the most of the teams). Though, it seams such an approach was not as good at private LB, or we just got super lucky at public LB getting to 0.628 in a few submissions. Other things are similar to your write up: noise is the key, and I also used your test noise dataset, thanks for posting it. Modified MixUp is the thing I also tried, but didn't work well at the beginning. Too bad that I joined the competition just a few weeks before the end, and couldn't properly check all the things(",
    "1012185": "All the merit goes @kneroma for the idea :)",
    "1012187": "Congratulations @theoviel and your team for getting 3rd place and also for you becoming a Grandmaster!\n\nI had a lot of fun fighting with your team on LB, thanks a lot!",
    "1012189": "Thanks again @hidehisaarai1213 \nWe're genuinely surprised we won the fight though !",
    "1012201": "Congratulations @theoviel , incredible work !",
    "1012258": "congratulation",
    "1012302": "> Modified Mixup\n\nThis is something quite interesting. I just couldn't make Mixup work well, but your approach is smart",
    "1012418": "Congrats theo for your valuable contribution and for joining french GM club 👊👊👊",
    "1012507": "Congratulations for GM and 3rd  :) Thanks for sharing",
    "1012573": "2nd French competition GM, bravo!",
    "1012580": "Congrats on GM and your team placing 3rd.",
    "1012627": "Good Work !!!! keep the Blogs On the way .",
    "1012672": "Thanks ! Congratz on the win !",
    "1012673": "Merci @ulrich07 !",
    "1012679": "One of the few good ideas I had in this comp :)",
    "1012683": "Thanks !\n\n3rd actually, there's @nhlx5haze as well :)",
    "1012686": "> Do you know how much you get from postprocessing (limiting to at most 3 birds)\n\nScore is the same, so this part of our post-processing is useless aha",
    "1012783": "Excellent !! Great Sharing. Thank you",
    "1013233": "Congrats! We are waiting for the update.",
    "1014111": "Insightful!",
    "1014112": "theoviel \nCongratulations to your  team on the win and your upgrade to GM status.\nThanks for sharing your work.",
    "1014131": "Thanks @youhanlee ! Hopefully you'll get that GM title soon :)",
    "1014132": "Thanks @muskanchaddha2112 , I will",
    "1014134": "Thanks ! I need to add some stuff indeed aha",
    "1014136": "Thanks @watzisname",
    "1014141": "Thanks, and you're welcome !",
    "1014142": "Thanks a lot @alanchn31",
    "1014143": "Thank you !",
    "1014145": "Thanks, and congratz on the strong finish !",
    "1014146": "No problem :)",
    "1014147": "Double thank you @sheriytm !",
    "1014148": "Thanks @fiyeroleung and congratz on the silver !",
    "1014293": "very impressive :)",
    "1015251": "Congratulations to your Grand Master upgrade.",
    "1015333": "Congratulations!",
    "1016560": "Excellent !!",
    "1016675": "Congratulations and very helpful",
    "1016708": "theoviel Congratulations to your team, and thank you for sharing solution notebooks.\nI'm specifically interested in the \"improved cropping\", but I could not figure out which part of code is doing that.\nI appreciate if you could show me about it. Thanks again!",
    "1016761": "Thanks @daisukelab \n\nConfidences are computed in the  `__getitem__` function of the dataset, and the cropping is done in the `crop_or_pad`  where the start second of the crop is sampled using the `probs` distribution\n\n[Link](https://github.com/TheoViel/kaggle_birdcall_identification/tree/master/src/data)",
    "1017973": "Thank you @theoviel it is so simple, amazing!\nhttps://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/dataset.py#L75\nhttps://github.com/TheoViel/kaggle_birdcall_identification/blob/master/src/data/transforms.py#L88\nI've got to know how you/team have done, I really appreciate.\nTruly, \"very polite\" as described on your icon! ;) Thanks again, congratulations!",
    "1018014": "good work",
    "1018028": "Congrats to GM and team mates. Good writeup.",
    "1018137": "Congratulations and thank you for sharing this.. I hope it will be used in later competitions..!!!👍 👍",
    "1018338": "You're welcome :)",
    "1018582": "Congratulations!!!!",
    "1018811": "Thank you for this graceful and well informative sharing post. Congratulations to the 3rd place @theoviel 🎉🙂👏! Well deserved👍!",
    "1018921": "Congratulations!!",
    "1019038": "theoviel Congratulations to your Grandmaster upgrade 🎉",
    "1019238": "Congratulations and thanks for the writeup.",
    "1019272": "Thanks @wochidadonggua !\nIt didn't took me too long to catch up with you :)",
    "1019391": "Thanks for the share! I have two questions about the mixup data augmentation technique:\n\n> Mixup creates a combination of a batch x1 and its shuffled version x2 : x = a * x1 + (1 - a) * x2 where a is samples with a beta distribution.\nThen, instead of using the classical objective for mixup, we define the target associated to x as the union of the original targets.\n\n1. What do you mean by \"union\"? Do you just add the the target vectors? Or do you apply the same technique(x = a * x1 + (1 - a) * x2) to the target vectors?\n\n>  I used 5 as parameter for the beta disctribution, which forces a to be close to 0.5.\n\n2. The beta distribution has 2 parameters α and β, did you use 5 for both?\n\nThanks for any help in advance!",
    "1019551": "`y = np.clip(y_1 + y_2, 0, 1)`\n- 5 for both yes",
    "1020570": "Congratulations and thank you for sharing!",
    "1026826": "Congratulations!!\nThanks for sharing you work",
    "1035543": "Congratulations",
    "1092912": "Nice content. Learning so much from your code structure and solution.",
    "1292526": "These are indeed great suggestions. Few of them are helping in the current competition also.",
    "1338832": "Congrat for the gold and thanks for such a detailed write up!\nI hope I am not too late to ask for a question:\nIs ur mixup applied on audio space or spectrogram space?",
    "1338834": "Spectrogram space :)",
    "1495857": "Great work =))"
  },
  "source": "meta"
}