{
  "id": 254656,
  "title": "为什么本地的验证集结果和codalab上面的结果差距很大呢？",
  "url": "/competitions/cowboyoutfits/discussion/254656",
  "author_name": "",
  "post_date": "2021-07-23T03:04:49.351675500Z",
  "votes": 1,
  "comment_count": 17,
  "views": 0,
  "content": "<p>本地从训练集中划分了500张图片作为验证集，在本地验证集的mAP能到75左右，但是提交到codalab的结果却只有6.4。<br>\n之前使用Cowboy_outfits_starter_kit，里面的验证集的mAP达到了50，但是提交到codalab也只有5。<br>\n不知道大家遇到这个问题没有，或者有可能我用的数据集有问题？</p>",
  "messages": [
    {
      "id": "1397284",
      "postDate": "07/23/2021 03:04:49",
      "content": "<p>本地从训练集中划分了500张图片作为验证集，在本地验证集的mAP能到75左右，但是提交到codalab的结果却只有6.4。<br>\n之前使用Cowboy_outfits_starter_kit，里面的验证集的mAP达到了50，但是提交到codalab也只有5。<br>\n不知道大家遇到这个问题没有，或者有可能我用的数据集有问题？</p>",
      "rawMarkdown": "本地从训练集中划分了500张图片作为验证集，在本地验证集的mAP能到75左右，但是提交到codalab的结果却只有6.4。\n之前使用Cowboy_outfits_starter_kit，里面的验证集的mAP达到了50，但是提交到codalab也只有5。\n不知道大家遇到这个问题没有，或者有可能我用的数据集有问题？",
      "votes": null
    },
    {
      "id": "1397324",
      "postDate": "07/23/2021 04:55:15",
      "content": "<p>下载前面分数高的，对比一下自己的json文件，看有没有什么格式错误<br>\n还有划分500张是怎么划分的，belt总共就21个label，研究了半天上个帖子里的split coco anno，决定转成voc再用cowboy-outfits-starter-kit里的方法划分😂</p>",
      "rawMarkdown": "下载前面分数高的，对比一下自己的json文件，看有没有什么格式错误\n还有划分500张是怎么划分的，belt总共就21个label，研究了半天上个帖子里的split coco anno，决定转成voc再用cowboy-outfits-starter-kit里的方法划分😂",
      "votes": null
    },
    {
      "id": "1397357",
      "postDate": "07/23/2021 05:50:50",
      "content": "<p><a href=\"https://www.kaggle.com/nekokiku\" target=\"_blank\">@nekokiku</a> 我下载了你的submission，并将其可视化，发现你的bbox是x_min,y_min,x_max,y_max<br>\n而coco格式是xywh  左上角(x,y) XD</p>",
      "rawMarkdown": "nekokiku 我下载了你的submission，并将其可视化，发现你的bbox是x_min,y_min,x_max,y_max\n而coco格式是xywh  左上角(x,y) XD",
      "votes": null
    },
    {
      "id": "1397363",
      "postDate": "07/23/2021 05:59:02",
      "content": "<pre><code>import pandas as pd\nfrom tqdm import tqdm\nimport cv2\nimport json\nimport os\n\n\ndef get_xyxy_from_cowboy(img_name, df, json_label):\n    xy_list = []\n    fname_id_dict = {}\n    for idx, row in df.iterrows():\n        fname_id_dict.update({row['file_name']: row['id']})\n    print('len(valid)=', len(fname_id_dict))\n    with open(json_label) as f:\n        jdata = json.load(f)\n        for dict in tqdm(jdata):\n            image_id = fname_id_dict[img_name]\n            if image_id == dict['image_id']:\n                # x_min, y_min, x_max, y_max = dict['bbox']\n                x, y, w, h = dict['bbox']\n                x_min, y_min, x_max, y_max = x, y, x + w, y + h\n                xy_list.append([int(x_min), int(y_min), int(x_max), int(y_max)])\n\n    return xy_list\n\n\ndef draw_rect(img, xy_list):\n    for xy in xy_list:\n        cv2.rectangle(img, (xy[0], xy[1]), (xy[2], xy[3]), (0, 0, 255), 2)\n\nif __name__ == '__main__':\n    dataset_path = '../../Dataset/images'\n    df = pd.read_csv('../../Dataset/valid.csv')\n    img_name = df['file_name'].sample(1).tolist()[0]\n    json_label = r'zip_cascade/answer.json'\n\n    print(img_name)\n    img = cv2.imread(os.path.join(dataset_path, img_name))\n    print(img.shape)  # (h,w,c)\n\n    xy_list = get_xyxy_from_cowboy(img_name, df, json_label)\n    draw_rect(img, xy_list)\n\n    cv2.namedWindow('Image', 0)\n    cv2.imshow('Image', img)\n    cv2.waitKey(0)\n</code></pre>",
      "rawMarkdown": "```python\nimport pandas as pd\nfrom tqdm import tqdm\nimport cv2\nimport json\nimport os\n\n\ndef get_xyxy_from_cowboy(img_name, df, json_label):\n    xy_list = []\n    fname_id_dict = {}\n    for idx, row in df.iterrows():\n        fname_id_dict.update({row['file_name']: row['id']})\n    print('len(valid)=', len(fname_id_dict))\n    with open(json_label) as f:\n        jdata = json.load(f)\n        for dict in tqdm(jdata):\n            image_id = fname_id_dict[img_name]\n            if image_id == dict['image_id']:\n                # x_min, y_min, x_max, y_max = dict['bbox']\n                x, y, w, h = dict['bbox']\n                x_min, y_min, x_max, y_max = x, y, x + w, y + h\n                xy_list.append([int(x_min), int(y_min), int(x_max), int(y_max)])\n\n    return xy_list\n\n\ndef draw_rect(img, xy_list):\n    for xy in xy_list:\n        cv2.rectangle(img, (xy[0], xy[1]), (xy[2], xy[3]), (0, 0, 255), 2)\n\nif __name__ == '__main__':\n    dataset_path = '../../Dataset/images'\n    df = pd.read_csv('../../Dataset/valid.csv')\n    img_name = df['file_name'].sample(1).tolist()[0]\n    json_label = r'zip_cascade/answer.json'\n    \n    print(img_name)\n    img = cv2.imread(os.path.join(dataset_path, img_name))\n    print(img.shape)  # (h,w,c)\n    \n    xy_list = get_xyxy_from_cowboy(img_name, df, json_label)\n    draw_rect(img, xy_list)\n    \n    cv2.namedWindow('Image', 0)\n    cv2.imshow('Image', img)\n    cv2.waitKey(0)\n```",
      "votes": null
    },
    {
      "id": "1397441",
      "postDate": "07/23/2021 07:55:44",
      "content": "<p>太感谢你了，我果然是个铁憨憨，我就说为啥我的分数这么奇怪</p>",
      "rawMarkdown": "太感谢你了，我果然是个铁憨憨，我就说为啥我的分数这么奇怪",
      "votes": null
    },
    {
      "id": "1397443",
      "postDate": "07/23/2021 07:57:53",
      "content": "<p>可以直接用pycocotools读取json文件，然后传入那个文件里面的函数就可以了。test_n的意思就是每个类别分别有多少个样本。</p>",
      "rawMarkdown": "可以直接用pycocotools读取json文件，然后传入那个文件里面的函数就可以了。test_n的意思就是每个类别分别有多少个样本。",
      "votes": null
    },
    {
      "id": "1398296",
      "postDate": "07/24/2021 02:15:53",
      "content": "<p>我也发现了不对劲，那个代码切分出来的图片数量加起来只有2000+，可是本来应该有3062张图片</p>",
      "rawMarkdown": "我也发现了不对劲，那个代码切分出来的图片数量加起来只有2000+，可是本来应该有3062张图片",
      "votes": null
    },
    {
      "id": "1398330",
      "postDate": "07/24/2021 04:14:01",
      "content": "<p>把所有valid注释掉，只分train和test</p>",
      "rawMarkdown": "把所有valid注释掉，只分train和test",
      "votes": null
    },
    {
      "id": "1398504",
      "postDate": "07/24/2021 08:19:25",
      "content": "<p>嗯嗯，这样分比较合理</p>",
      "rawMarkdown": "嗯嗯，这样分比较合理",
      "votes": null
    },
    {
      "id": "1399298",
      "postDate": "07/25/2021 06:59:04",
      "content": "<p>你划分出来的本地验证集和codalab结果差距大概是多少啊，我现在依然有着20%左右的差距，感觉可能是数据集划分方式不太对</p>",
      "rawMarkdown": "你划分出来的本地验证集和codalab结果差距大概是多少啊，我现在依然有着20%左右的差距，感觉可能是数据集划分方式不太对",
      "votes": null
    },
    {
      "id": "1399452",
      "postDate": "07/25/2021 10:10:15",
      "content": "<p><a href=\"https://www.kaggle.com/c/cowboyoutfits/overview/evaluation\" target=\"_blank\">评估标准</a>是mAP@.5:.95<br>\n之前按照用cowboy-outfits-starter-kit里的方法划分train 3012 val 50<br>\n在yolov5m上finetune，验证集大概mAP@.5: 0.71, mAP@.5:.95 0.41，submission 59</p>\n<p>现在划分方式test_n=150, tn = min(test_n, int(len(img_ids) * 0.3)) 划分出来train 2609 val 453<br>\n用mmdetection（mmdet新手，还在摸索）目前跑了resnest50-cascade rcnn验证集上最高mAP@.5:.95 0.405，（epoch12，跑到后面mAP狂掉😂）没提交</p>",
      "rawMarkdown": "[评估标准](https://www.kaggle.com/c/cowboyoutfits/overview/evaluation)是mAP@.5:.95\n之前按照用cowboy-outfits-starter-kit里的方法划分train 3012 val 50\n在yolov5m上finetune，验证集大概mAP@.5: 0.71, mAP@.5:.95 0.41，submission 59\n\n现在划分方式test_n=150, tn = min(test_n, int(len(img_ids) * 0.3)) 划分出来train 2609 val 453\n用mmdetection（mmdet新手，还在摸索）目前跑了resnest50-cascade rcnn验证集上最高mAP@.5:.95 0.405，（epoch12，跑到后面mAP狂掉😂）没提交",
      "votes": null
    },
    {
      "id": "1399531",
      "postDate": "07/25/2021 12:07:39",
      "content": "<p>我是用的ResNeXt101-CascadeRCNN, test_n=180，train 2440 valid 622。我验证集上最高bbox_mAP: 0.4660, bbox_mAP_50: 0.7740, bbox_mAP_75: 0.3650。但是交上去就只有24.11。我也只跑了12轮，到后面mAP就只有39了，我也不太理解为啥会掉</p>",
      "rawMarkdown": "我是用的ResNeXt101-CascadeRCNN, test_n=180，train 2440 valid 622。我验证集上最高bbox_mAP: 0.4660, bbox_mAP_50: 0.7740, bbox_mAP_75: 0.3650。但是交上去就只有24.11。我也只跑了12轮，到后面mAP就只有39了，我也不太理解为啥会掉",
      "votes": null
    },
    {
      "id": "1400640",
      "postDate": "07/26/2021 13:13:29",
      "content": "<p>我打算放弃我自己的验证集了，我验证集mAP@.5:.95 28.4，交上codalab去72.6, 我感觉就是玄学</p>",
      "rawMarkdown": "我打算放弃我自己的验证集了，我验证集mAP@.5:.95 28.4，交上codalab去72.6, 我感觉就是玄学",
      "votes": null
    },
    {
      "id": "1401094",
      "postDate": "07/27/2021 01:46:52",
      "content": "<p>我用yolo 做训练不出来在kaggle上，9个小时后自动给我关闭，好难弄</p>",
      "rawMarkdown": "我用yolo 做训练不出来在kaggle上，9个小时后自动给我关闭，好难弄",
      "votes": null
    },
    {
      "id": "1401654",
      "postDate": "07/27/2021 13:20:11",
      "content": "<p>问一下，验证集还是不是只在Kaggle上验证的效果，与生成提交的json有很大的关系吗？</p>",
      "rawMarkdown": "问一下，验证集还是不是只在Kaggle上验证的效果，与生成提交的json有很大的关系吗？",
      "votes": null
    },
    {
      "id": "1401928",
      "postDate": "07/27/2021 16:46:02",
      "content": "<p>你可以看看我的notebook 用mmdetection做 或者参考一下另外一位大佬用YOLOv5的notebook</p>",
      "rawMarkdown": "你可以看看我的notebook 用mmdetection做 或者参考一下另外一位大佬用YOLOv5的notebook",
      "votes": null
    },
    {
      "id": "1401935",
      "postDate": "07/27/2021 16:48:13",
      "content": "<p>按道理来说，验证集的结果应该和交上去的结果差不多。但是这次的我试了很多种划分验证集的方法，最后结果都和交上去的差很多（有可能是因为数据不均衡吧，我也不知道为啥）</p>",
      "rawMarkdown": "按道理来说，验证集的结果应该和交上去的结果差不多。但是这次的我试了很多种划分验证集的方法，最后结果都和交上去的差很多（有可能是因为数据不均衡吧，我也不知道为啥）",
      "votes": null
    },
    {
      "id": "1406216",
      "postDate": "07/31/2021 15:41:49",
      "content": "<p>确实很迷，用 faster-rcnn 10个 epch 跑了下，自己验证集 map@.5:.95 就 35多点，提交上去 59.99..</p>",
      "rawMarkdown": "确实很迷，用 faster-rcnn 10个 epch 跑了下，自己验证集 map@.5:.95 就 35多点，提交上去 59.99..",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1397324,
      "author_name": "snowclem",
      "author_url": "",
      "post_date": "07/23/2021 04:55:15",
      "content": "<p>下载前面分数高的，对比一下自己的json文件，看有没有什么格式错误<br>\n还有划分500张是怎么划分的，belt总共就21个label，研究了半天上个帖子里的split coco anno，决定转成voc再用cowboy-outfits-starter-kit里的方法划分😂</p>",
      "votes": null,
      "replies": [
        {
          "id": 1397443,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/23/2021 07:57:53",
          "content": "<p>可以直接用pycocotools读取json文件，然后传入那个文件里面的函数就可以了。test_n的意思就是每个类别分别有多少个样本。</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1398296,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/24/2021 02:15:53",
          "content": "<p>我也发现了不对劲，那个代码切分出来的图片数量加起来只有2000+，可是本来应该有3062张图片</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1398330,
          "author_name": "snowclem",
          "author_url": "",
          "post_date": "07/24/2021 04:14:01",
          "content": "<p>把所有valid注释掉，只分train和test</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1398504,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/24/2021 08:19:25",
          "content": "<p>嗯嗯，这样分比较合理</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1399298,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/25/2021 06:59:04",
          "content": "<p>你划分出来的本地验证集和codalab结果差距大概是多少啊，我现在依然有着20%左右的差距，感觉可能是数据集划分方式不太对</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1399452,
          "author_name": "snowclem",
          "author_url": "",
          "post_date": "07/25/2021 10:10:15",
          "content": "<p><a href=\"https://www.kaggle.com/c/cowboyoutfits/overview/evaluation\" target=\"_blank\">评估标准</a>是mAP@.5:.95<br>\n之前按照用cowboy-outfits-starter-kit里的方法划分train 3012 val 50<br>\n在yolov5m上finetune，验证集大概mAP@.5: 0.71, mAP@.5:.95 0.41，submission 59</p>\n<p>现在划分方式test_n=150, tn = min(test_n, int(len(img_ids) * 0.3)) 划分出来train 2609 val 453<br>\n用mmdetection（mmdet新手，还在摸索）目前跑了resnest50-cascade rcnn验证集上最高mAP@.5:.95 0.405，（epoch12，跑到后面mAP狂掉😂）没提交</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1399531,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/25/2021 12:07:39",
          "content": "<p>我是用的ResNeXt101-CascadeRCNN, test_n=180，train 2440 valid 622。我验证集上最高bbox_mAP: 0.4660, bbox_mAP_50: 0.7740, bbox_mAP_75: 0.3650。但是交上去就只有24.11。我也只跑了12轮，到后面mAP就只有39了，我也不太理解为啥会掉</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1400640,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/26/2021 13:13:29",
          "content": "<p>我打算放弃我自己的验证集了，我验证集mAP@.5:.95 28.4，交上codalab去72.6, 我感觉就是玄学</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1406216,
          "author_name": "niangaopx",
          "author_url": "",
          "post_date": "07/31/2021 15:41:49",
          "content": "<p>确实很迷，用 faster-rcnn 10个 epch 跑了下，自己验证集 map@.5:.95 就 35多点，提交上去 59.99..</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1397357,
      "author_name": "snowclem",
      "author_url": "",
      "post_date": "07/23/2021 05:50:50",
      "content": "<p><a href=\"https://www.kaggle.com/nekokiku\" target=\"_blank\">@nekokiku</a> 我下载了你的submission，并将其可视化，发现你的bbox是x_min,y_min,x_max,y_max<br>\n而coco格式是xywh  左上角(x,y) XD</p>",
      "votes": null,
      "replies": [
        {
          "id": 1397441,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/23/2021 07:55:44",
          "content": "<p>太感谢你了，我果然是个铁憨憨，我就说为啥我的分数这么奇怪</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1397363,
      "author_name": "snowclem",
      "author_url": "",
      "post_date": "07/23/2021 05:59:02",
      "content": "<pre><code>import pandas as pd\nfrom tqdm import tqdm\nimport cv2\nimport json\nimport os\n\n\ndef get_xyxy_from_cowboy(img_name, df, json_label):\n    xy_list = []\n    fname_id_dict = {}\n    for idx, row in df.iterrows():\n        fname_id_dict.update({row['file_name']: row['id']})\n    print('len(valid)=', len(fname_id_dict))\n    with open(json_label) as f:\n        jdata = json.load(f)\n        for dict in tqdm(jdata):\n            image_id = fname_id_dict[img_name]\n            if image_id == dict['image_id']:\n                # x_min, y_min, x_max, y_max = dict['bbox']\n                x, y, w, h = dict['bbox']\n                x_min, y_min, x_max, y_max = x, y, x + w, y + h\n                xy_list.append([int(x_min), int(y_min), int(x_max), int(y_max)])\n\n    return xy_list\n\n\ndef draw_rect(img, xy_list):\n    for xy in xy_list:\n        cv2.rectangle(img, (xy[0], xy[1]), (xy[2], xy[3]), (0, 0, 255), 2)\n\nif __name__ == '__main__':\n    dataset_path = '../../Dataset/images'\n    df = pd.read_csv('../../Dataset/valid.csv')\n    img_name = df['file_name'].sample(1).tolist()[0]\n    json_label = r'zip_cascade/answer.json'\n\n    print(img_name)\n    img = cv2.imread(os.path.join(dataset_path, img_name))\n    print(img.shape)  # (h,w,c)\n\n    xy_list = get_xyxy_from_cowboy(img_name, df, json_label)\n    draw_rect(img, xy_list)\n\n    cv2.namedWindow('Image', 0)\n    cv2.imshow('Image', img)\n    cv2.waitKey(0)\n</code></pre>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1401094,
      "author_name": "zanghf163com",
      "author_url": "",
      "post_date": "07/27/2021 01:46:52",
      "content": "<p>我用yolo 做训练不出来在kaggle上，9个小时后自动给我关闭，好难弄</p>",
      "votes": null,
      "replies": [
        {
          "id": 1401928,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/27/2021 16:46:02",
          "content": "<p>你可以看看我的notebook 用mmdetection做 或者参考一下另外一位大佬用YOLOv5的notebook</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1401654,
      "author_name": "daoweiniu",
      "author_url": "",
      "post_date": "07/27/2021 13:20:11",
      "content": "<p>问一下，验证集还是不是只在Kaggle上验证的效果，与生成提交的json有很大的关系吗？</p>",
      "votes": null,
      "replies": [
        {
          "id": 1401935,
          "author_name": "nekokiku",
          "author_url": "",
          "post_date": "07/27/2021 16:48:13",
          "content": "<p>按道理来说，验证集的结果应该和交上去的结果差不多。但是这次的我试了很多种划分验证集的方法，最后结果都和交上去的差很多（有可能是因为数据不均衡吧，我也不知道为啥）</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1397284": "本地从训练集中划分了500张图片作为验证集，在本地验证集的mAP能到75左右，但是提交到codalab的结果却只有6.4。\n之前使用Cowboy_outfits_starter_kit，里面的验证集的mAP达到了50，但是提交到codalab也只有5。\n不知道大家遇到这个问题没有，或者有可能我用的数据集有问题？",
    "1397324": "下载前面分数高的，对比一下自己的json文件，看有没有什么格式错误\n还有划分500张是怎么划分的，belt总共就21个label，研究了半天上个帖子里的split coco anno，决定转成voc再用cowboy-outfits-starter-kit里的方法划分😂",
    "1397357": "nekokiku 我下载了你的submission，并将其可视化，发现你的bbox是x_min,y_min,x_max,y_max\n而coco格式是xywh  左上角(x,y) XD",
    "1397363": "```python\nimport pandas as pd\nfrom tqdm import tqdm\nimport cv2\nimport json\nimport os\n\n\ndef get_xyxy_from_cowboy(img_name, df, json_label):\n    xy_list = []\n    fname_id_dict = {}\n    for idx, row in df.iterrows():\n        fname_id_dict.update({row['file_name']: row['id']})\n    print('len(valid)=', len(fname_id_dict))\n    with open(json_label) as f:\n        jdata = json.load(f)\n        for dict in tqdm(jdata):\n            image_id = fname_id_dict[img_name]\n            if image_id == dict['image_id']:\n                # x_min, y_min, x_max, y_max = dict['bbox']\n                x, y, w, h = dict['bbox']\n                x_min, y_min, x_max, y_max = x, y, x + w, y + h\n                xy_list.append([int(x_min), int(y_min), int(x_max), int(y_max)])\n\n    return xy_list\n\n\ndef draw_rect(img, xy_list):\n    for xy in xy_list:\n        cv2.rectangle(img, (xy[0], xy[1]), (xy[2], xy[3]), (0, 0, 255), 2)\n\nif __name__ == '__main__':\n    dataset_path = '../../Dataset/images'\n    df = pd.read_csv('../../Dataset/valid.csv')\n    img_name = df['file_name'].sample(1).tolist()[0]\n    json_label = r'zip_cascade/answer.json'\n    \n    print(img_name)\n    img = cv2.imread(os.path.join(dataset_path, img_name))\n    print(img.shape)  # (h,w,c)\n    \n    xy_list = get_xyxy_from_cowboy(img_name, df, json_label)\n    draw_rect(img, xy_list)\n    \n    cv2.namedWindow('Image', 0)\n    cv2.imshow('Image', img)\n    cv2.waitKey(0)\n```",
    "1397441": "太感谢你了，我果然是个铁憨憨，我就说为啥我的分数这么奇怪",
    "1397443": "可以直接用pycocotools读取json文件，然后传入那个文件里面的函数就可以了。test_n的意思就是每个类别分别有多少个样本。",
    "1398296": "我也发现了不对劲，那个代码切分出来的图片数量加起来只有2000+，可是本来应该有3062张图片",
    "1398330": "把所有valid注释掉，只分train和test",
    "1398504": "嗯嗯，这样分比较合理",
    "1399298": "你划分出来的本地验证集和codalab结果差距大概是多少啊，我现在依然有着20%左右的差距，感觉可能是数据集划分方式不太对",
    "1399452": "[评估标准](https://www.kaggle.com/c/cowboyoutfits/overview/evaluation)是mAP@.5:.95\n之前按照用cowboy-outfits-starter-kit里的方法划分train 3012 val 50\n在yolov5m上finetune，验证集大概mAP@.5: 0.71, mAP@.5:.95 0.41，submission 59\n\n现在划分方式test_n=150, tn = min(test_n, int(len(img_ids) * 0.3)) 划分出来train 2609 val 453\n用mmdetection（mmdet新手，还在摸索）目前跑了resnest50-cascade rcnn验证集上最高mAP@.5:.95 0.405，（epoch12，跑到后面mAP狂掉😂）没提交",
    "1399531": "我是用的ResNeXt101-CascadeRCNN, test_n=180，train 2440 valid 622。我验证集上最高bbox_mAP: 0.4660, bbox_mAP_50: 0.7740, bbox_mAP_75: 0.3650。但是交上去就只有24.11。我也只跑了12轮，到后面mAP就只有39了，我也不太理解为啥会掉",
    "1400640": "我打算放弃我自己的验证集了，我验证集mAP@.5:.95 28.4，交上codalab去72.6, 我感觉就是玄学",
    "1401094": "我用yolo 做训练不出来在kaggle上，9个小时后自动给我关闭，好难弄",
    "1401654": "问一下，验证集还是不是只在Kaggle上验证的效果，与生成提交的json有很大的关系吗？",
    "1401928": "你可以看看我的notebook 用mmdetection做 或者参考一下另外一位大佬用YOLOv5的notebook",
    "1401935": "按道理来说，验证集的结果应该和交上去的结果差不多。但是这次的我试了很多种划分验证集的方法，最后结果都和交上去的差很多（有可能是因为数据不均衡吧，我也不知道为啥）",
    "1406216": "确实很迷，用 faster-rcnn 10个 epch 跑了下，自己验证集 map@.5:.95 就 35多点，提交上去 59.99.."
  },
  "source": "meta"
}