{
  "id": 243304,
  "title": "[1st Place] Quick Solution",
  "url": "/competitions/birdclef-2021/writeups/dr-1st-place-quick-solution",
  "author_name": "",
  "post_date": "2021-06-04T13:52:16.127Z",
  "votes": 112,
  "comment_count": 38,
  "views": 0,
  "content": "<p>Thanks to all the hosts, participants, and teammates  <a href=\"https://www.kaggle.com/startjapan\" target=\"_blank\">@startjapan</a> , <a href=\"https://www.kaggle.com/namakemono\" target=\"_blank\">@namakemono</a> .<br>\nWe are also surprised by this result. We think it is because our solution was quite different from the other teams.</p>\n<p>I'm not confident in my English, but I hope you all can understand.</p>\n<p>We didn't expect to get the top spot, so we weren't prepared to share our solution.<br>\nHere is a brief explanation of the solution. There are three stages.</p>\n<h2>1st stage</h2>\n<p>We used freefield1010 to classify whether it is a nocall or not from the melspectrogram.<br>\n<a href=\"https://academictorrents.com/details/d247b92fa7b606e0914367c0839365499dd20121\" target=\"_blank\">https://academictorrents.com/details/d247b92fa7b606e0914367c0839365499dd20121</a></p>\n<h2>2nd stage</h2>\n<p>We used short audio to predict which bird is singing.<br>\nkkiller( <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> ) 's notebook helped us a lot. I think it would have been difficult for us to win without it.<br>\nThe short audio has noisy labels, so we used the results of the 1st stage to weight the labels.<br>\nWe used train sound scapes as validation.<br>\nThe number of models used in the final submission was 10.</p>\n<h2>3rd stage</h2>\n<p>We extracted 5 candidates from the results of the 2nd stage, and together with the information from meta data, we trained lightgbm to predict whether the bird would be included in the answer.<br>\nOnly short audio was used for training, and train sound scapes were used for validation.</p>\n<h2>Post-processing</h2>\n<p>The optimal threshold is determined using Ternary search.<br>\nSince the threshold varies depending on the percentage of nocall, we used both the case where the percentage of nocall is not changed and the case where the percentage is reduced to 54% as the final submission. However, it was better not to change it.</p>\n<h2>Machine</h2>\n<p>All three of us used Colab Pro as our main machine.</p>\n<p>There are a few other tricks.<br>\nI'll share the detailed solution later. Please look forward to it.</p>\n<h2>6/4</h2>\n<p>My teammate <a href=\"https://www.kaggle.com/startjapan\" target=\"_blank\">@startjapan</a> wrote about our detailed solution.<br>\nIf you're interested in our detailed solution, please check it out !</p>\n<p><a href=\"https://www.kaggle.com/c/birdclef-2021/discussion/243927\" target=\"_blank\">https://www.kaggle.com/c/birdclef-2021/discussion/243927</a></p>",
  "messages": [
    {
      "id": "1332207",
      "postDate": "06/02/2021 01:15:00",
      "content": "<p>Thanks to all the hosts, participants, and teammates  <a href=\"https://www.kaggle.com/startjapan\" target=\"_blank\">@startjapan</a> , <a href=\"https://www.kaggle.com/namakemono\" target=\"_blank\">@namakemono</a> .<br>\nWe are also surprised by this result. We think it is because our solution was quite different from the other teams.</p>\n<p>I'm not confident in my English, but I hope you all can understand.</p>\n<p>We didn't expect to get the top spot, so we weren't prepared to share our solution.<br>\nHere is a brief explanation of the solution. There are three stages.</p>\n<h2>1st stage</h2>\n<p>We used freefield1010 to classify whether it is a nocall or not from the melspectrogram.<br>\n<a href=\"https://academictorrents.com/details/d247b92fa7b606e0914367c0839365499dd20121\" target=\"_blank\">https://academictorrents.com/details/d247b92fa7b606e0914367c0839365499dd20121</a></p>\n<h2>2nd stage</h2>\n<p>We used short audio to predict which bird is singing.<br>\nkkiller( <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> ) 's notebook helped us a lot. I think it would have been difficult for us to win without it.<br>\nThe short audio has noisy labels, so we used the results of the 1st stage to weight the labels.<br>\nWe used train sound scapes as validation.<br>\nThe number of models used in the final submission was 10.</p>\n<h2>3rd stage</h2>\n<p>We extracted 5 candidates from the results of the 2nd stage, and together with the information from meta data, we trained lightgbm to predict whether the bird would be included in the answer.<br>\nOnly short audio was used for training, and train sound scapes were used for validation.</p>\n<h2>Post-processing</h2>\n<p>The optimal threshold is determined using Ternary search.<br>\nSince the threshold varies depending on the percentage of nocall, we used both the case where the percentage of nocall is not changed and the case where the percentage is reduced to 54% as the final submission. However, it was better not to change it.</p>\n<h2>Machine</h2>\n<p>All three of us used Colab Pro as our main machine.</p>\n<p>There are a few other tricks.<br>\nI'll share the detailed solution later. Please look forward to it.</p>\n<h2>6/4</h2>\n<p>My teammate <a href=\"https://www.kaggle.com/startjapan\" target=\"_blank\">@startjapan</a> wrote about our detailed solution.<br>\nIf you're interested in our detailed solution, please check it out !</p>\n<p><a href=\"https://www.kaggle.com/c/birdclef-2021/discussion/243927\" target=\"_blank\">https://www.kaggle.com/c/birdclef-2021/discussion/243927</a></p>",
      "rawMarkdown": "Thanks to all the hosts, participants, and teammates  @startjapan , @namakemono .\nWe are also surprised by this result. We think it is because our solution was quite different from the other teams.\n\nI'm not confident in my English, but I hope you all can understand.\n\nWe didn't expect to get the top spot, so we weren't prepared to share our solution.\nHere is a brief explanation of the solution. There are three stages.\n\n## 1st stage\nWe used freefield1010 to classify whether it is a nocall or not from the melspectrogram.\nhttps://academictorrents.com/details/d247b92fa7b606e0914367c0839365499dd20121\n\n## 2nd stage\nWe used short audio to predict which bird is singing.\nkkiller( @kneroma ) 's notebook helped us a lot. I think it would have been difficult for us to win without it.\nThe short audio has noisy labels, so we used the results of the 1st stage to weight the labels.\nWe used train sound scapes as validation.\nThe number of models used in the final submission was 10.\n\n## 3rd stage\nWe extracted 5 candidates from the results of the 2nd stage, and together with the information from meta data, we trained lightgbm to predict whether the bird would be included in the answer.\nOnly short audio was used for training, and train sound scapes were used for validation.\n\n## Post-processing\nThe optimal threshold is determined using Ternary search.\nSince the threshold varies depending on the percentage of nocall, we used both the case where the percentage of nocall is not changed and the case where the percentage is reduced to 54% as the final submission. However, it was better not to change it.\n\n## Machine\nAll three of us used Colab Pro as our main machine.\n\n\nThere are a few other tricks.\nI'll share the detailed solution later. Please look forward to it.\n\n\n\n## 6/4\nMy teammate @startjapan wrote about our detailed solution.\nIf you're interested in our detailed solution, please check it out !\n\nhttps://www.kaggle.com/c/birdclef-2021/discussion/243927",
      "votes": null
    },
    {
      "id": "1332208",
      "postDate": "06/02/2021 01:20:08",
      "content": "<p>Thank you for sharing! A unique aproch indeed!</p>",
      "rawMarkdown": "Thank you for sharing! A unique aproch indeed!",
      "votes": null
    },
    {
      "id": "1332210",
      "postDate": "06/02/2021 01:21:21",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> on getting first position. You had a 15 position jump ahead, which is awesome. Please share your CV technique in your full solution, I am amazed to see many GMs CV technique getting tossed in this competition.</p>",
      "rawMarkdown": "Congratulations @kami634 on getting first position. You had a 15 position jump ahead, which is awesome. Please share your CV technique in your full solution, I am amazed to see many GMs CV technique getting tossed in this competition.",
      "votes": null
    },
    {
      "id": "1332223",
      "postDate": "06/02/2021 01:46:39",
      "content": "<p>Congrats on 1st place!</p>\n<p>I'm looking forward to full version of your solution.</p>",
      "rawMarkdown": "Congrats on 1st place!\n\nI'm looking forward to full version of your solution.",
      "votes": null
    },
    {
      "id": "1332230",
      "postDate": "06/02/2021 02:04:58",
      "content": "<p>Congratulations! Looking forward to the details.</p>",
      "rawMarkdown": "Congratulations! Looking forward to the details.",
      "votes": null
    },
    {
      "id": "1332256",
      "postDate": "06/02/2021 02:24:46",
      "content": "<p>Wow only Colab Pro.</p>\n<p>Thank you , You are a great example for everyone say you need to buy your own big GPUs to do well in Kaggle.</p>\n<p>Now I love Colab Pro even more.</p>\n<p>Congratulations !!</p>",
      "rawMarkdown": "Wow only Colab Pro.\n\nThank you , You are a great example for everyone say you need to buy your own big GPUs to do well in Kaggle.\n\nNow I love Colab Pro even more.\n\nCongratulations !!",
      "votes": null
    },
    {
      "id": "1332259",
      "postDate": "06/02/2021 02:26:20",
      "content": "<p>Congrat on 1st place! Its impressive your team has achieved this mainly with Colab Pro! <br>\nBesides the detailed solution, would you mind sharing some pro tips on how to use Colab efficiently? (how to efficiently arrange experiment runs, organize code, control code version, operations wrt model/ dataset checkpointing, how to collaborate in Colab, anything special when building ur end2end pipeline in Colab … etc.)<br>\nI believe its sth many kaggler wanna know, especially to those with low computing resources! </p>",
      "rawMarkdown": "Congrat on 1st place! Its impressive your team has achieved this mainly with Colab Pro! \nBesides the detailed solution, would you mind sharing some pro tips on how to use Colab efficiently? (how to efficiently arrange experiment runs, organize code, control code version, operations wrt model/ dataset checkpointing, how to collaborate in Colab, anything special when building ur end2end pipeline in Colab ... etc.)\nI believe its sth many kaggler wanna know, especially to those with low computing resources!",
      "votes": null
    },
    {
      "id": "1332267",
      "postDate": "06/02/2021 02:36:16",
      "content": "<p>That is true</p>",
      "rawMarkdown": "That is true",
      "votes": null
    },
    {
      "id": "1332271",
      "postDate": "06/02/2021 02:43:21",
      "content": "<p>Oh yes,Indeed</p>",
      "rawMarkdown": "Oh yes,Indeed",
      "votes": null
    },
    {
      "id": "1332277",
      "postDate": "06/02/2021 02:52:07",
      "content": "<p>Congratulations! Thank you for your quick share.<br>\nI'm looking forward to the details and code, if you can.</p>",
      "rawMarkdown": "Congratulations! Thank you for your quick share.\nI'm looking forward to the details and code, if you can.",
      "votes": null
    },
    {
      "id": "1332290",
      "postDate": "06/02/2021 03:10:52",
      "content": "<p>Congratulation for the amazing rise to the first place! I used sort of similar approaches of your stages 1 and 2 (but I only used two models with not-good enough precision). I am happy to see that these stages has worked great. I liked the idea of Ternary search for finding the threshold I used XGBoost for mapping the outputs of classes' prob to a 0-1 vector but it didn't work well. I am looking forward to see more details.</p>",
      "rawMarkdown": "Congratulation for the amazing rise to the first place! I used sort of similar approaches of your stages 1 and 2 (but I only used two models with not-good enough precision). I am happy to see that these stages has worked great. I liked the idea of Ternary search for finding the threshold I used XGBoost for mapping the outputs of classes' prob to a 0-1 vector but it didn't work well. I am looking forward to see more details.",
      "votes": null
    },
    {
      "id": "1332327",
      "postDate": "06/02/2021 04:27:02",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a>  for your 1rst position. Happy to know that my kernel helps you 😊.</p>",
      "rawMarkdown": "Congratulations @kami634  for your 1rst position. Happy to know that my kernel helps you 😊.",
      "votes": null
    },
    {
      "id": "1332373",
      "postDate": "06/02/2021 05:11:02",
      "content": "<p>Thanks for your great notebook! Throughout the long period of the competition, you have been our goal !</p>",
      "rawMarkdown": "Thanks for your great notebook! Throughout the long period of the competition, you have been our goal !",
      "votes": null
    },
    {
      "id": "1332380",
      "postDate": "06/02/2021 05:20:53",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a>, <a href=\"https://www.kaggle.com/startjapan\" target=\"_blank\">@startjapan</a> , <a href=\"https://www.kaggle.com/namakemono\" target=\"_blank\">@namakemono</a> . for your 1st position.<br>\nWonderful to see you all in top slot!! Looking forward to all three of you becoming MASTERS!! Congratss!!</p>\n<p>And agree kkiller( <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> ) has been exceptional in sharing his approach and was great learning from him</p>\n<p>look forward to your tricks and see and learn more!!</p>",
      "rawMarkdown": "Congratulations @kami634, @startjapan , @namakemono . for your 1st position.\nWonderful to see you all in top slot!! Looking forward to all three of you becoming MASTERS!! Congratss!!\n\nAnd agree kkiller( @kneroma ) has been exceptional in sharing his approach and was great learning from him\n\nlook forward to your tricks and see and learn more!!",
      "votes": null
    },
    {
      "id": "1332492",
      "postDate": "06/02/2021 06:39:12",
      "content": "<p>That's quite impressive, congratulations. Are you planning to share the colab notebooks?</p>",
      "rawMarkdown": "That's quite impressive, congratulations. Are you planning to share the colab notebooks?",
      "votes": null
    },
    {
      "id": "1332513",
      "postDate": "06/02/2021 06:48:02",
      "content": "<p>Congratulation to your result and thank you for sharing your solution. Looking forward to reading the details.</p>",
      "rawMarkdown": "Congratulation to your result and thank you for sharing your solution. Looking forward to reading the details.",
      "votes": null
    },
    {
      "id": "1332686",
      "postDate": "06/02/2021 08:40:39",
      "content": "<p>Congratulation for your performances, thanks for sharing </p>",
      "rawMarkdown": "Congratulation for your performances, thanks for sharing",
      "votes": null
    },
    {
      "id": "1332737",
      "postDate": "06/02/2021 09:11:51",
      "content": "<p>Congrats on your strong finish!! +1 that you handle all this work with just colab PRO. Looking forward to read the detailed solution. </p>",
      "rawMarkdown": "Congrats on your strong finish!! +1 that you handle all this work with just colab PRO. Looking forward to read the detailed solution.",
      "votes": null
    },
    {
      "id": "1332742",
      "postDate": "06/02/2021 09:16:08",
      "content": "<p>Congrats on the win, waiting for more details!</p>",
      "rawMarkdown": "Congrats on the win, waiting for more details!",
      "votes": null
    },
    {
      "id": "1333340",
      "postDate": "06/02/2021 16:38:01",
      "content": "<p>Congratulations. I'm still waiting. Well done!</p>",
      "rawMarkdown": "Congratulations. I'm still waiting. Well done!",
      "votes": null
    },
    {
      "id": "1333394",
      "postDate": "06/02/2021 17:25:27",
      "content": "<p>Congratulations for your first place <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> !!</p>\n<p>Your three phases strategy is quite different from most top solutions; again, congratulations.</p>\n<p>I joined the competition to late and I wasn't even able to build a single strong model. Using a similar model pipeline (and data preprocessing) as kkiller public notebook I got a f1 CV of 0.68-0.69 on train soundscape (on 1 fold). What was your average CV f1 on train soundscapes for one fold and how did you trained it ? (number of epochs, scheduler, any special trick, …)</p>\n<p>Thanks in advance for your reply. Looking forward to read your full story!</p>",
      "rawMarkdown": "Congratulations for your first place @kami634 !!\n\nYour three phases strategy is quite different from most top solutions; again, congratulations.\n\nI joined the competition to late and I wasn't even able to build a single strong model. Using a similar model pipeline (and data preprocessing) as kkiller public notebook I got a f1 CV of 0.68-0.69 on train soundscape (on 1 fold). What was your average CV f1 on train soundscapes for one fold and how did you trained it ? (number of epochs, scheduler, any special trick, ...)\n\nThanks in advance for your reply. Looking forward to read your full story!",
      "votes": null
    },
    {
      "id": "1333653",
      "postDate": "06/02/2021 23:57:38",
      "content": "<p>Thanks for your kind words … </p>\n<p>That feeling of becoming Kaggle comp' master 😄. Keep it up !</p>",
      "rawMarkdown": "Thanks for your kind words ... \n\nThat feeling of becoming Kaggle comp' master 😄. Keep it up !",
      "votes": null
    },
    {
      "id": "1333698",
      "postDate": "06/03/2021 01:24:21",
      "content": "<p>Thank you!<br>\nYour teams entered this contest at about the same time and submitted about the same number of times, so I was watching you.<br>\nCongratulations on winning 2nd place!</p>",
      "rawMarkdown": "Thank you!\nYour teams entered this contest at about the same time and submitted about the same number of times, so I was watching you.\nCongratulations on winning 2nd place!",
      "votes": null
    },
    {
      "id": "1333699",
      "postDate": "06/03/2021 01:27:30",
      "content": "<p>Since we had converted the audios to melspectrograms beforehand, the computational cost for CNN training was quite low.<br>\nI think Colab Pro is a sufficient computational resource in this competition.<br>\nI will share the details later!</p>",
      "rawMarkdown": "Since we had converted the audios to melspectrograms beforehand, the computational cost for CNN training was quite low.\nI think Colab Pro is a sufficient computational resource in this competition.\nI will share the details later!",
      "votes": null
    },
    {
      "id": "1333700",
      "postDate": "06/03/2021 01:30:47",
      "content": "<p>Thanks, and congratulations on becoming a Competitions Master!</p>",
      "rawMarkdown": "Thanks, and congratulations on becoming a Competitions Master!",
      "votes": null
    },
    {
      "id": "1333701",
      "postDate": "06/03/2021 01:33:07",
      "content": "<p>Thanks!<br>\nThe pipeline is complicated and it's taking a while to clean up…</p>",
      "rawMarkdown": "Thanks!\nThe pipeline is complicated and it's taking a while to clean up...",
      "votes": null
    },
    {
      "id": "1333703",
      "postDate": "06/03/2021 01:37:16",
      "content": "<p>In the 2nd and 3rd stage train_soundscapes was used as validation.</p>\n<p>We were worried that our model might be overfitting the train_soundscapes because the score was not good enough in public LB, but it was top in private LB!</p>",
      "rawMarkdown": "In the 2nd and 3rd stage train_soundscapes was used as validation.\n\nWe were worried that our model might be overfitting the train_soundscapes because the score was not good enough in public LB, but it was top in private LB!",
      "votes": null
    },
    {
      "id": "1333706",
      "postDate": "06/03/2021 01:46:50",
      "content": "<p>In the 2nd stage, we got f1 scores 0.73~0.76 on train soundscapes (on 1 fold). The number of epochs is 20~80.<br>\nThe learning process is almost the same as kkiller's notebook, but we did StratifiedGroupKFold grouped by authors and some data augmentation(mixup) worked.<br>\nI will share the detailed learning process later!</p>",
      "rawMarkdown": "In the 2nd stage, we got f1 scores 0.73~0.76 on train soundscapes (on 1 fold). The number of epochs is 20~80.\nThe learning process is almost the same as kkiller's notebook, but we did StratifiedGroupKFold grouped by authors and some data augmentation(mixup) worked.\nI will share the detailed learning process later!",
      "votes": null
    },
    {
      "id": "1333707",
      "postDate": "06/03/2021 01:49:10",
      "content": "<p>We are planning to share the code for all stages. We are working on cleaning it up, so please wait!</p>",
      "rawMarkdown": "We are planning to share the code for all stages. We are working on cleaning it up, so please wait!",
      "votes": null
    },
    {
      "id": "1333708",
      "postDate": "06/03/2021 01:50:47",
      "content": "<p>Thank you. It was our goal to become masters. I'm happy!</p>",
      "rawMarkdown": "Thank you. It was our goal to become masters. I'm happy!",
      "votes": null
    },
    {
      "id": "1333709",
      "postDate": "06/03/2021 01:52:59",
      "content": "<p>Thank you!<br>\nWe thought we couldn't beat you, so we were surprised to see the results.</p>",
      "rawMarkdown": "Thank you!\nWe thought we couldn't beat you, so we were surprised to see the results.",
      "votes": null
    },
    {
      "id": "1333765",
      "postDate": "06/03/2021 03:36:53",
      "content": "<p>Congratulations on the 1st place <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a>, it`s indeed very unique solution and I guess it`s also big surprise for you. 😉</p>\n<p>I also tried use freefield1010 to train 'nocall' class but didn`t work well for me, I`m wondering how you train your 'nocall' class, do you train it as a binary classifier with all freefield1010 data + all train short audios? I looked into freefiled1010 data and found there are also many birds tag inside, do you exclude those audios with birds tag? Thanks.</p>",
      "rawMarkdown": "Congratulations on the 1st place @kami634, it\\`s indeed very unique solution and I guess it`s also big surprise for you. 😉\n\nI also tried use freefield1010 to train 'nocall' class but didn\\`t work well for me, I\\`m wondering how you train your 'nocall' class, do you train it as a binary classifier with all freefield1010 data + all train short audios? I looked into freefiled1010 data and found there are also many birds tag inside, do you exclude those audios with birds tag? Thanks.",
      "votes": null
    },
    {
      "id": "1333840",
      "postDate": "06/03/2021 05:07:20",
      "content": "<p>Thanks for sharing your great notebooks. :) <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> </p>",
      "rawMarkdown": "Thanks for sharing your great notebooks. :) @kneroma",
      "votes": null
    },
    {
      "id": "1334681",
      "postDate": "06/03/2021 17:28:48",
      "content": "<p>Hey, <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> congrats on the first place, and thanks for sharing the overview of your solution. Waiting for you to share the detailed solution along with the steps to use Colab efficiently.</p>\n<p>Cheers!</p>",
      "rawMarkdown": "Hey, @kami634 congrats on the first place, and thanks for sharing the overview of your solution. Waiting for you to share the detailed solution along with the steps to use Colab efficiently.\n\nCheers!",
      "votes": null
    },
    {
      "id": "1335160",
      "postDate": "06/04/2021 03:32:28",
      "content": "<p>many thanks! look forward to that! </p>",
      "rawMarkdown": "many thanks! look forward to that!",
      "votes": null
    },
    {
      "id": "1335209",
      "postDate": "06/04/2021 04:52:50",
      "content": "<p>thank you for sharing and congratulation for you <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> 😀</p>",
      "rawMarkdown": "thank you for sharing and congratulation for you @kami634 😀",
      "votes": null
    },
    {
      "id": "1335383",
      "postDate": "06/04/2021 07:23:40",
      "content": "<p>Thanks for your reply <a href=\"https://www.kaggle.com/kami\" target=\"_blank\">@kami</a>. Looking forward to the full write-up. Also, will you make your training pipeline public? I would like to try to attain your same results ( CV of 0.73-0.76 on training soundscapes) for learning purposes by training some models from scratch. Also, I'm sure others might find this helpful too!<br>\nAgain, congrats for the first place! 🥇</p>",
      "rawMarkdown": "Thanks for your reply @kami. Looking forward to the full write-up. Also, will you make your training pipeline public? I would like to try to attain your same results ( CV of 0.73-0.76 on training soundscapes) for learning purposes by training some models from scratch. Also, I'm sure others might find this helpful too!\nAgain, congrats for the first place! 🥇",
      "votes": null
    },
    {
      "id": "1336485",
      "postDate": "06/05/2021 01:00:30",
      "content": "<p>Hi <a href=\"https://www.kaggle.com/superchenhao\" target=\"_blank\">@superchenhao</a>, thank you for your comment and question.<br>\nFirstly, I would like to confirm we use the same external data.</p>\n<p>[freefield1010 audio data]<br>\n<a href=\"https://www.kaggle.com/rlmwang/ff1010bird\" target=\"_blank\">https://www.kaggle.com/rlmwang/ff1010bird</a><br>\n[Label data was downloaded from the below site.]<br>\n<a href=\"http://machine-listening.eecs.qmul.ac.uk/bird-audio-detection-challenge/\" target=\"_blank\">http://machine-listening.eecs.qmul.ac.uk/bird-audio-detection-challenge/</a></p>\n<p>We trained our nocall detector as a simple binary classifier (0 : nocall, 1 : somebird singing) with just all of freefield1010 data, not with train_short_audio data. In this stage, we focused only on whether or not some bird is singing, and we didn't care what species of birds they are.</p>\n<p>you can check how we trained our nocall detector in our solution code here.<br>\n<a href=\"https://github.com/namakemono/kaggle-birdclef-2021\" target=\"_blank\">https://github.com/namakemono/kaggle-birdclef-2021</a><br>\nI think what you want to know is in './share_solution/working/build_nocall_detector.ipynb'</p>\n<p>I hope it will help you.</p>",
      "rawMarkdown": "Hi @superchenhao, thank you for your comment and question.\nFirstly, I would like to confirm we use the same external data.\n\n[freefield1010 audio data]\nhttps://www.kaggle.com/rlmwang/ff1010bird\n[Label data was downloaded from the below site.]\nhttp://machine-listening.eecs.qmul.ac.uk/bird-audio-detection-challenge/\n\nWe trained our nocall detector as a simple binary classifier (0 : nocall, 1 : somebird singing) with just all of freefield1010 data, not with train_short_audio data. In this stage, we focused only on whether or not some bird is singing, and we didn't care what species of birds they are.\n\nyou can check how we trained our nocall detector in our solution code here.\nhttps://github.com/namakemono/kaggle-birdclef-2021\nI think what you want to know is in './share_solution/working/build_nocall_detector.ipynb'\n\nI hope it will help you.",
      "votes": null
    },
    {
      "id": "1336621",
      "postDate": "06/05/2021 05:17:39",
      "content": "<p>Thanks for your detailed explanation, I will study your code and try, best wishes. </p>",
      "rawMarkdown": "Thanks for your detailed explanation, I will study your code and try, best wishes.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1332208,
      "author_name": "victorasso",
      "author_url": "",
      "post_date": "06/02/2021 01:20:08",
      "content": "<p>Thank you for sharing! A unique aproch indeed!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332210,
      "author_name": "lplenka",
      "author_url": "",
      "post_date": "06/02/2021 01:21:21",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> on getting first position. You had a 15 position jump ahead, which is awesome. Please share your CV technique in your full solution, I am amazed to see many GMs CV technique getting tossed in this competition.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333703,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:37:16",
          "content": "<p>In the 2nd and 3rd stage train_soundscapes was used as validation.</p>\n<p>We were worried that our model might be overfitting the train_soundscapes because the score was not good enough in public LB, but it was top in private LB!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332223,
      "author_name": "ttahara",
      "author_url": "",
      "post_date": "06/02/2021 01:46:39",
      "content": "<p>Congrats on 1st place!</p>\n<p>I'm looking forward to full version of your solution.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333701,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:33:07",
          "content": "<p>Thanks!<br>\nThe pipeline is complicated and it's taking a while to clean up…</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332230,
      "author_name": "tattaka",
      "author_url": "",
      "post_date": "06/02/2021 02:04:58",
      "content": "<p>Congratulations! Looking forward to the details.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333700,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:30:47",
          "content": "<p>Thanks, and congratulations on becoming a Competitions Master!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332256,
      "author_name": "faisalalsrheed",
      "author_url": "",
      "post_date": "06/02/2021 02:24:46",
      "content": "<p>Wow only Colab Pro.</p>\n<p>Thank you , You are a great example for everyone say you need to buy your own big GPUs to do well in Kaggle.</p>\n<p>Now I love Colab Pro even more.</p>\n<p>Congratulations !!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332259,
      "author_name": "alexlwh",
      "author_url": "",
      "post_date": "06/02/2021 02:26:20",
      "content": "<p>Congrat on 1st place! Its impressive your team has achieved this mainly with Colab Pro! <br>\nBesides the detailed solution, would you mind sharing some pro tips on how to use Colab efficiently? (how to efficiently arrange experiment runs, organize code, control code version, operations wrt model/ dataset checkpointing, how to collaborate in Colab, anything special when building ur end2end pipeline in Colab … etc.)<br>\nI believe its sth many kaggler wanna know, especially to those with low computing resources! </p>",
      "votes": null,
      "replies": [
        {
          "id": 1332267,
          "author_name": "victorasso",
          "author_url": "",
          "post_date": "06/02/2021 02:36:16",
          "content": "<p>That is true</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1332271,
          "author_name": "faisalalsrheed",
          "author_url": "",
          "post_date": "06/02/2021 02:43:21",
          "content": "<p>Oh yes,Indeed</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1333699,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:27:30",
          "content": "<p>Since we had converted the audios to melspectrograms beforehand, the computational cost for CNN training was quite low.<br>\nI think Colab Pro is a sufficient computational resource in this competition.<br>\nI will share the details later!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1335160,
          "author_name": "alexlwh",
          "author_url": "",
          "post_date": "06/04/2021 03:32:28",
          "content": "<p>many thanks! look forward to that! </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332277,
      "author_name": "masakiinaba",
      "author_url": "",
      "post_date": "06/02/2021 02:52:07",
      "content": "<p>Congratulations! Thank you for your quick share.<br>\nI'm looking forward to the details and code, if you can.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332290,
      "author_name": "tjamali",
      "author_url": "",
      "post_date": "06/02/2021 03:10:52",
      "content": "<p>Congratulation for the amazing rise to the first place! I used sort of similar approaches of your stages 1 and 2 (but I only used two models with not-good enough precision). I am happy to see that these stages has worked great. I liked the idea of Ternary search for finding the threshold I used XGBoost for mapping the outputs of classes' prob to a 0-1 vector but it didn't work well. I am looking forward to see more details.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332327,
      "author_name": "kneroma",
      "author_url": "",
      "post_date": "06/02/2021 04:27:02",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a>  for your 1rst position. Happy to know that my kernel helps you 😊.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1332373,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/02/2021 05:11:02",
          "content": "<p>Thanks for your great notebook! Throughout the long period of the competition, you have been our goal !</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1333653,
          "author_name": "kneroma",
          "author_url": "",
          "post_date": "06/02/2021 23:57:38",
          "content": "<p>Thanks for your kind words … </p>\n<p>That feeling of becoming Kaggle comp' master 😄. Keep it up !</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1333840,
          "author_name": "piantic",
          "author_url": "",
          "post_date": "06/03/2021 05:07:20",
          "content": "<p>Thanks for sharing your great notebooks. :) <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332380,
      "author_name": "kmldas",
      "author_url": "",
      "post_date": "06/02/2021 05:20:53",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a>, <a href=\"https://www.kaggle.com/startjapan\" target=\"_blank\">@startjapan</a> , <a href=\"https://www.kaggle.com/namakemono\" target=\"_blank\">@namakemono</a> . for your 1st position.<br>\nWonderful to see you all in top slot!! Looking forward to all three of you becoming MASTERS!! Congratss!!</p>\n<p>And agree kkiller( <a href=\"https://www.kaggle.com/kneroma\" target=\"_blank\">@kneroma</a> ) has been exceptional in sharing his approach and was great learning from him</p>\n<p>look forward to your tricks and see and learn more!!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333708,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:50:47",
          "content": "<p>Thank you. It was our goal to become masters. I'm happy!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332492,
      "author_name": "yassinealouini",
      "author_url": "",
      "post_date": "06/02/2021 06:39:12",
      "content": "<p>That's quite impressive, congratulations. Are you planning to share the colab notebooks?</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333707,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:49:10",
          "content": "<p>We are planning to share the code for all stages. We are working on cleaning it up, so please wait!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332513,
      "author_name": "christofhenkel",
      "author_url": "",
      "post_date": "06/02/2021 06:48:02",
      "content": "<p>Congratulation to your result and thank you for sharing your solution. Looking forward to reading the details.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333698,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:24:21",
          "content": "<p>Thank you!<br>\nYour teams entered this contest at about the same time and submitted about the same number of times, so I was watching you.<br>\nCongratulations on winning 2nd place!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332686,
      "author_name": "salimkhazem",
      "author_url": "",
      "post_date": "06/02/2021 08:40:39",
      "content": "<p>Congratulation for your performances, thanks for sharing </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332737,
      "author_name": "imeintanis",
      "author_url": "",
      "post_date": "06/02/2021 09:11:51",
      "content": "<p>Congrats on your strong finish!! +1 that you handle all this work with just colab PRO. Looking forward to read the detailed solution. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332742,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "06/02/2021 09:16:08",
      "content": "<p>Congrats on the win, waiting for more details!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333709,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:52:59",
          "content": "<p>Thank you!<br>\nWe thought we couldn't beat you, so we were surprised to see the results.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1333340,
      "author_name": "piantic",
      "author_url": "",
      "post_date": "06/02/2021 16:38:01",
      "content": "<p>Congratulations. I'm still waiting. Well done!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1333394,
      "author_name": "jonathanbesomi",
      "author_url": "",
      "post_date": "06/02/2021 17:25:27",
      "content": "<p>Congratulations for your first place <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> !!</p>\n<p>Your three phases strategy is quite different from most top solutions; again, congratulations.</p>\n<p>I joined the competition to late and I wasn't even able to build a single strong model. Using a similar model pipeline (and data preprocessing) as kkiller public notebook I got a f1 CV of 0.68-0.69 on train soundscape (on 1 fold). What was your average CV f1 on train soundscapes for one fold and how did you trained it ? (number of epochs, scheduler, any special trick, …)</p>\n<p>Thanks in advance for your reply. Looking forward to read your full story!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1333706,
          "author_name": "kami634",
          "author_url": "",
          "post_date": "06/03/2021 01:46:50",
          "content": "<p>In the 2nd stage, we got f1 scores 0.73~0.76 on train soundscapes (on 1 fold). The number of epochs is 20~80.<br>\nThe learning process is almost the same as kkiller's notebook, but we did StratifiedGroupKFold grouped by authors and some data augmentation(mixup) worked.<br>\nI will share the detailed learning process later!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1335383,
          "author_name": "jonathanbesomi",
          "author_url": "",
          "post_date": "06/04/2021 07:23:40",
          "content": "<p>Thanks for your reply <a href=\"https://www.kaggle.com/kami\" target=\"_blank\">@kami</a>. Looking forward to the full write-up. Also, will you make your training pipeline public? I would like to try to attain your same results ( CV of 0.73-0.76 on training soundscapes) for learning purposes by training some models from scratch. Also, I'm sure others might find this helpful too!<br>\nAgain, congrats for the first place! 🥇</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1333765,
      "author_name": "superchenhao",
      "author_url": "",
      "post_date": "06/03/2021 03:36:53",
      "content": "<p>Congratulations on the 1st place <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a>, it`s indeed very unique solution and I guess it`s also big surprise for you. 😉</p>\n<p>I also tried use freefield1010 to train 'nocall' class but didn`t work well for me, I`m wondering how you train your 'nocall' class, do you train it as a binary classifier with all freefield1010 data + all train short audios? I looked into freefiled1010 data and found there are also many birds tag inside, do you exclude those audios with birds tag? Thanks.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1336485,
          "author_name": "startjapan",
          "author_url": "",
          "post_date": "06/05/2021 01:00:30",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/superchenhao\" target=\"_blank\">@superchenhao</a>, thank you for your comment and question.<br>\nFirstly, I would like to confirm we use the same external data.</p>\n<p>[freefield1010 audio data]<br>\n<a href=\"https://www.kaggle.com/rlmwang/ff1010bird\" target=\"_blank\">https://www.kaggle.com/rlmwang/ff1010bird</a><br>\n[Label data was downloaded from the below site.]<br>\n<a href=\"http://machine-listening.eecs.qmul.ac.uk/bird-audio-detection-challenge/\" target=\"_blank\">http://machine-listening.eecs.qmul.ac.uk/bird-audio-detection-challenge/</a></p>\n<p>We trained our nocall detector as a simple binary classifier (0 : nocall, 1 : somebird singing) with just all of freefield1010 data, not with train_short_audio data. In this stage, we focused only on whether or not some bird is singing, and we didn't care what species of birds they are.</p>\n<p>you can check how we trained our nocall detector in our solution code here.<br>\n<a href=\"https://github.com/namakemono/kaggle-birdclef-2021\" target=\"_blank\">https://github.com/namakemono/kaggle-birdclef-2021</a><br>\nI think what you want to know is in './share_solution/working/build_nocall_detector.ipynb'</p>\n<p>I hope it will help you.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1336621,
          "author_name": "superchenhao",
          "author_url": "",
          "post_date": "06/05/2021 05:17:39",
          "content": "<p>Thanks for your detailed explanation, I will study your code and try, best wishes. </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1334681,
      "author_name": "yashraizada",
      "author_url": "",
      "post_date": "06/03/2021 17:28:48",
      "content": "<p>Hey, <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> congrats on the first place, and thanks for sharing the overview of your solution. Waiting for you to share the detailed solution along with the steps to use Colab efficiently.</p>\n<p>Cheers!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1335209,
      "author_name": "fauzanalfariz",
      "author_url": "",
      "post_date": "06/04/2021 04:52:50",
      "content": "<p>thank you for sharing and congratulation for you <a href=\"https://www.kaggle.com/kami634\" target=\"_blank\">@kami634</a> 😀</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1332207": "Thanks to all the hosts, participants, and teammates  @startjapan , @namakemono .\nWe are also surprised by this result. We think it is because our solution was quite different from the other teams.\n\nI'm not confident in my English, but I hope you all can understand.\n\nWe didn't expect to get the top spot, so we weren't prepared to share our solution.\nHere is a brief explanation of the solution. There are three stages.\n\n## 1st stage\nWe used freefield1010 to classify whether it is a nocall or not from the melspectrogram.\nhttps://academictorrents.com/details/d247b92fa7b606e0914367c0839365499dd20121\n\n## 2nd stage\nWe used short audio to predict which bird is singing.\nkkiller( @kneroma ) 's notebook helped us a lot. I think it would have been difficult for us to win without it.\nThe short audio has noisy labels, so we used the results of the 1st stage to weight the labels.\nWe used train sound scapes as validation.\nThe number of models used in the final submission was 10.\n\n## 3rd stage\nWe extracted 5 candidates from the results of the 2nd stage, and together with the information from meta data, we trained lightgbm to predict whether the bird would be included in the answer.\nOnly short audio was used for training, and train sound scapes were used for validation.\n\n## Post-processing\nThe optimal threshold is determined using Ternary search.\nSince the threshold varies depending on the percentage of nocall, we used both the case where the percentage of nocall is not changed and the case where the percentage is reduced to 54% as the final submission. However, it was better not to change it.\n\n## Machine\nAll three of us used Colab Pro as our main machine.\n\n\nThere are a few other tricks.\nI'll share the detailed solution later. Please look forward to it.\n\n\n\n## 6/4\nMy teammate @startjapan wrote about our detailed solution.\nIf you're interested in our detailed solution, please check it out !\n\nhttps://www.kaggle.com/c/birdclef-2021/discussion/243927",
    "1332208": "Thank you for sharing! A unique aproch indeed!",
    "1332210": "Congratulations @kami634 on getting first position. You had a 15 position jump ahead, which is awesome. Please share your CV technique in your full solution, I am amazed to see many GMs CV technique getting tossed in this competition.",
    "1332223": "Congrats on 1st place!\n\nI'm looking forward to full version of your solution.",
    "1332230": "Congratulations! Looking forward to the details.",
    "1332256": "Wow only Colab Pro.\n\nThank you , You are a great example for everyone say you need to buy your own big GPUs to do well in Kaggle.\n\nNow I love Colab Pro even more.\n\nCongratulations !!",
    "1332259": "Congrat on 1st place! Its impressive your team has achieved this mainly with Colab Pro! \nBesides the detailed solution, would you mind sharing some pro tips on how to use Colab efficiently? (how to efficiently arrange experiment runs, organize code, control code version, operations wrt model/ dataset checkpointing, how to collaborate in Colab, anything special when building ur end2end pipeline in Colab ... etc.)\nI believe its sth many kaggler wanna know, especially to those with low computing resources!",
    "1332267": "That is true",
    "1332271": "Oh yes,Indeed",
    "1332277": "Congratulations! Thank you for your quick share.\nI'm looking forward to the details and code, if you can.",
    "1332290": "Congratulation for the amazing rise to the first place! I used sort of similar approaches of your stages 1 and 2 (but I only used two models with not-good enough precision). I am happy to see that these stages has worked great. I liked the idea of Ternary search for finding the threshold I used XGBoost for mapping the outputs of classes' prob to a 0-1 vector but it didn't work well. I am looking forward to see more details.",
    "1332327": "Congratulations @kami634  for your 1rst position. Happy to know that my kernel helps you 😊.",
    "1332373": "Thanks for your great notebook! Throughout the long period of the competition, you have been our goal !",
    "1332380": "Congratulations @kami634, @startjapan , @namakemono . for your 1st position.\nWonderful to see you all in top slot!! Looking forward to all three of you becoming MASTERS!! Congratss!!\n\nAnd agree kkiller( @kneroma ) has been exceptional in sharing his approach and was great learning from him\n\nlook forward to your tricks and see and learn more!!",
    "1332492": "That's quite impressive, congratulations. Are you planning to share the colab notebooks?",
    "1332513": "Congratulation to your result and thank you for sharing your solution. Looking forward to reading the details.",
    "1332686": "Congratulation for your performances, thanks for sharing",
    "1332737": "Congrats on your strong finish!! +1 that you handle all this work with just colab PRO. Looking forward to read the detailed solution.",
    "1332742": "Congrats on the win, waiting for more details!",
    "1333340": "Congratulations. I'm still waiting. Well done!",
    "1333394": "Congratulations for your first place @kami634 !!\n\nYour three phases strategy is quite different from most top solutions; again, congratulations.\n\nI joined the competition to late and I wasn't even able to build a single strong model. Using a similar model pipeline (and data preprocessing) as kkiller public notebook I got a f1 CV of 0.68-0.69 on train soundscape (on 1 fold). What was your average CV f1 on train soundscapes for one fold and how did you trained it ? (number of epochs, scheduler, any special trick, ...)\n\nThanks in advance for your reply. Looking forward to read your full story!",
    "1333653": "Thanks for your kind words ... \n\nThat feeling of becoming Kaggle comp' master 😄. Keep it up !",
    "1333698": "Thank you!\nYour teams entered this contest at about the same time and submitted about the same number of times, so I was watching you.\nCongratulations on winning 2nd place!",
    "1333699": "Since we had converted the audios to melspectrograms beforehand, the computational cost for CNN training was quite low.\nI think Colab Pro is a sufficient computational resource in this competition.\nI will share the details later!",
    "1333700": "Thanks, and congratulations on becoming a Competitions Master!",
    "1333701": "Thanks!\nThe pipeline is complicated and it's taking a while to clean up...",
    "1333703": "In the 2nd and 3rd stage train_soundscapes was used as validation.\n\nWe were worried that our model might be overfitting the train_soundscapes because the score was not good enough in public LB, but it was top in private LB!",
    "1333706": "In the 2nd stage, we got f1 scores 0.73~0.76 on train soundscapes (on 1 fold). The number of epochs is 20~80.\nThe learning process is almost the same as kkiller's notebook, but we did StratifiedGroupKFold grouped by authors and some data augmentation(mixup) worked.\nI will share the detailed learning process later!",
    "1333707": "We are planning to share the code for all stages. We are working on cleaning it up, so please wait!",
    "1333708": "Thank you. It was our goal to become masters. I'm happy!",
    "1333709": "Thank you!\nWe thought we couldn't beat you, so we were surprised to see the results.",
    "1333765": "Congratulations on the 1st place @kami634, it\\`s indeed very unique solution and I guess it`s also big surprise for you. 😉\n\nI also tried use freefield1010 to train 'nocall' class but didn\\`t work well for me, I\\`m wondering how you train your 'nocall' class, do you train it as a binary classifier with all freefield1010 data + all train short audios? I looked into freefiled1010 data and found there are also many birds tag inside, do you exclude those audios with birds tag? Thanks.",
    "1333840": "Thanks for sharing your great notebooks. :) @kneroma",
    "1334681": "Hey, @kami634 congrats on the first place, and thanks for sharing the overview of your solution. Waiting for you to share the detailed solution along with the steps to use Colab efficiently.\n\nCheers!",
    "1335160": "many thanks! look forward to that!",
    "1335209": "thank you for sharing and congratulation for you @kami634 😀",
    "1335383": "Thanks for your reply @kami. Looking forward to the full write-up. Also, will you make your training pipeline public? I would like to try to attain your same results ( CV of 0.73-0.76 on training soundscapes) for learning purposes by training some models from scratch. Also, I'm sure others might find this helpful too!\nAgain, congrats for the first place! 🥇",
    "1336485": "Hi @superchenhao, thank you for your comment and question.\nFirstly, I would like to confirm we use the same external data.\n\n[freefield1010 audio data]\nhttps://www.kaggle.com/rlmwang/ff1010bird\n[Label data was downloaded from the below site.]\nhttp://machine-listening.eecs.qmul.ac.uk/bird-audio-detection-challenge/\n\nWe trained our nocall detector as a simple binary classifier (0 : nocall, 1 : somebird singing) with just all of freefield1010 data, not with train_short_audio data. In this stage, we focused only on whether or not some bird is singing, and we didn't care what species of birds they are.\n\nyou can check how we trained our nocall detector in our solution code here.\nhttps://github.com/namakemono/kaggle-birdclef-2021\nI think what you want to know is in './share_solution/working/build_nocall_detector.ipynb'\n\nI hope it will help you.",
    "1336621": "Thanks for your detailed explanation, I will study your code and try, best wishes."
  },
  "source": "meta"
}