{
  "id": 125502,
  "title": "Multi-class mixup recall evaluation, maybe you need",
  "url": "/competitions/bengaliai-cv19/discussion/125502",
  "author_name": "",
  "post_date": "2020-01-11T07:18:26.213260800Z",
  "votes": 2,
  "comment_count": 1,
  "views": 0,
  "content": "<p><code>def macro_recall_multi_mixup(pred_graphemes, true_graphemes1, true_graphemes2, alpha_graphemes, pred_vowels, true_vowels1, true_vowels2, alpha_vowels, pred_consonants,true_consonants1, true_consonants2, alpha_consonants, n_grapheme=168, n_vowel=11, n_consonant=7):\n</code>\n`  </p>\n\n<pre><code>true_label_graphemes1 = true_graphemes1.cpu().numpy()\ntrue_label_graphemes2 = true_graphemes2.cpu().numpy()\npred_label_graphemes = torch.argmax(pred_graphemes, dim=1).cpu().numpy()\n\npred_label_vowels = torch.argmax(pred_vowels, dim=1).cpu().numpy()\ntrue_label_vowels1 = true_vowels1.cpu().numpy()\ntrue_label_vowels2 = true_vowels2.cpu().numpy()\npred_label_consonants = torch.argmax(pred_consonants, dim=1).cpu().numpy()\ntrue_label_consonants1 = true_consonants1.cpu().numpy()\ntrue_label_consonants2 = true_consonants2.cpu().numpy()\n\n# print('pred_label_graphemes:', pred_label_graphemes.shape)\n# print('true_label_graphemes1:', true_label_graphemes1.shape)\n# print('true_label_graphemes2:', true_label_graphemes2.shape)\n#print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro'))\n#print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro'))\n\nrecall_grapheme = alpha_graphemes * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro') \\\n                  + (1-alpha_graphemes) * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro')\n\n\nrecall_vowel = alpha_vowels * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels1, average='macro')\\\n               + (1-alpha_vowels) * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels2, average='macro')\n\n\n\nrecall_consonant = alpha_consonants * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants1, average='macro') \\\n                   + (1 - alpha_consonants) * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants2, average='macro')\n\n\nscores = [recall_grapheme, recall_vowel, recall_consonant]\nfinal_score = np.average(scores, weights=[2, 1, 1])\n# print(f'recall: grapheme {recall_grapheme}, vowel {recall_vowel}, consonant {recall_consonant}, '\n#       f'total {final_score}')\nreturn final_score`\n</code></pre>",
  "messages": [
    {
      "id": "716049",
      "postDate": "01/11/2020 07:18:26",
      "content": "<p><code>def macro_recall_multi_mixup(pred_graphemes, true_graphemes1, true_graphemes2, alpha_graphemes, pred_vowels, true_vowels1, true_vowels2, alpha_vowels, pred_consonants,true_consonants1, true_consonants2, alpha_consonants, n_grapheme=168, n_vowel=11, n_consonant=7):\n</code>\n`  </p>\n\n<pre><code>true_label_graphemes1 = true_graphemes1.cpu().numpy()\ntrue_label_graphemes2 = true_graphemes2.cpu().numpy()\npred_label_graphemes = torch.argmax(pred_graphemes, dim=1).cpu().numpy()\n\npred_label_vowels = torch.argmax(pred_vowels, dim=1).cpu().numpy()\ntrue_label_vowels1 = true_vowels1.cpu().numpy()\ntrue_label_vowels2 = true_vowels2.cpu().numpy()\npred_label_consonants = torch.argmax(pred_consonants, dim=1).cpu().numpy()\ntrue_label_consonants1 = true_consonants1.cpu().numpy()\ntrue_label_consonants2 = true_consonants2.cpu().numpy()\n\n# print('pred_label_graphemes:', pred_label_graphemes.shape)\n# print('true_label_graphemes1:', true_label_graphemes1.shape)\n# print('true_label_graphemes2:', true_label_graphemes2.shape)\n#print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro'))\n#print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro'))\n\nrecall_grapheme = alpha_graphemes * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro') \\\n                  + (1-alpha_graphemes) * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro')\n\n\nrecall_vowel = alpha_vowels * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels1, average='macro')\\\n               + (1-alpha_vowels) * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels2, average='macro')\n\n\n\nrecall_consonant = alpha_consonants * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants1, average='macro') \\\n                   + (1 - alpha_consonants) * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants2, average='macro')\n\n\nscores = [recall_grapheme, recall_vowel, recall_consonant]\nfinal_score = np.average(scores, weights=[2, 1, 1])\n# print(f'recall: grapheme {recall_grapheme}, vowel {recall_vowel}, consonant {recall_consonant}, '\n#       f'total {final_score}')\nreturn final_score`\n</code></pre>",
      "rawMarkdown": "`def macro_recall_multi_mixup(pred_graphemes, true_graphemes1, true_graphemes2, alpha_graphemes, pred_vowels, true_vowels1, true_vowels2, alpha_vowels, pred_consonants,true_consonants1, true_consonants2, alpha_consonants, n_grapheme=168, n_vowel=11, n_consonant=7):\n`\n`  \n\n    true_label_graphemes1 = true_graphemes1.cpu().numpy()\n    true_label_graphemes2 = true_graphemes2.cpu().numpy()\n    pred_label_graphemes = torch.argmax(pred_graphemes, dim=1).cpu().numpy()\n\n    pred_label_vowels = torch.argmax(pred_vowels, dim=1).cpu().numpy()\n    true_label_vowels1 = true_vowels1.cpu().numpy()\n    true_label_vowels2 = true_vowels2.cpu().numpy()\n    pred_label_consonants = torch.argmax(pred_consonants, dim=1).cpu().numpy()\n    true_label_consonants1 = true_consonants1.cpu().numpy()\n    true_label_consonants2 = true_consonants2.cpu().numpy()\n\n    # print('pred_label_graphemes:', pred_label_graphemes.shape)\n    # print('true_label_graphemes1:', true_label_graphemes1.shape)\n    # print('true_label_graphemes2:', true_label_graphemes2.shape)\n    #print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro'))\n    #print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro'))\n\n    recall_grapheme = alpha_graphemes * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro') \\\n                      + (1-alpha_graphemes) * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro')\n\n\n    recall_vowel = alpha_vowels * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels1, average='macro')\\\n                   + (1-alpha_vowels) * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels2, average='macro')\n\n\n\n    recall_consonant = alpha_consonants * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants1, average='macro') \\\n                       + (1 - alpha_consonants) * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants2, average='macro')\n\n\n    scores = [recall_grapheme, recall_vowel, recall_consonant]\n    final_score = np.average(scores, weights=[2, 1, 1])\n    # print(f'recall: grapheme {recall_grapheme}, vowel {recall_vowel}, consonant {recall_consonant}, '\n    #       f'total {final_score}')\n    return final_score`",
      "votes": null
    },
    {
      "id": "716063",
      "postDate": "01/11/2020 07:37:35",
      "content": "<p>eff0 with mixup has 0.0038 improvement</p>",
      "rawMarkdown": "eff0 with mixup has 0.0038 improvement",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 716063,
      "author_name": "cswwp347724",
      "author_url": "",
      "post_date": "01/11/2020 07:37:35",
      "content": "<p>eff0 with mixup has 0.0038 improvement</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "716049": "`def macro_recall_multi_mixup(pred_graphemes, true_graphemes1, true_graphemes2, alpha_graphemes, pred_vowels, true_vowels1, true_vowels2, alpha_vowels, pred_consonants,true_consonants1, true_consonants2, alpha_consonants, n_grapheme=168, n_vowel=11, n_consonant=7):\n`\n`  \n\n    true_label_graphemes1 = true_graphemes1.cpu().numpy()\n    true_label_graphemes2 = true_graphemes2.cpu().numpy()\n    pred_label_graphemes = torch.argmax(pred_graphemes, dim=1).cpu().numpy()\n\n    pred_label_vowels = torch.argmax(pred_vowels, dim=1).cpu().numpy()\n    true_label_vowels1 = true_vowels1.cpu().numpy()\n    true_label_vowels2 = true_vowels2.cpu().numpy()\n    pred_label_consonants = torch.argmax(pred_consonants, dim=1).cpu().numpy()\n    true_label_consonants1 = true_consonants1.cpu().numpy()\n    true_label_consonants2 = true_consonants2.cpu().numpy()\n\n    # print('pred_label_graphemes:', pred_label_graphemes.shape)\n    # print('true_label_graphemes1:', true_label_graphemes1.shape)\n    # print('true_label_graphemes2:', true_label_graphemes2.shape)\n    #print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro'))\n    #print(sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro'))\n\n    recall_grapheme = alpha_graphemes * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes1, average='macro') \\\n                      + (1-alpha_graphemes) * sklearn.metrics.recall_score(pred_label_graphemes, true_label_graphemes2, average='macro')\n\n\n    recall_vowel = alpha_vowels * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels1, average='macro')\\\n                   + (1-alpha_vowels) * sklearn.metrics.recall_score(pred_label_vowels, true_label_vowels2, average='macro')\n\n\n\n    recall_consonant = alpha_consonants * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants1, average='macro') \\\n                       + (1 - alpha_consonants) * sklearn.metrics.recall_score(pred_label_consonants, true_label_consonants2, average='macro')\n\n\n    scores = [recall_grapheme, recall_vowel, recall_consonant]\n    final_score = np.average(scores, weights=[2, 1, 1])\n    # print(f'recall: grapheme {recall_grapheme}, vowel {recall_vowel}, consonant {recall_consonant}, '\n    #       f'total {final_score}')\n    return final_score`",
    "716063": "eff0 with mixup has 0.0038 improvement"
  },
  "source": "meta"
}