{
  "id": 546765,
  "title": "How to create training code？",
  "url": "/competitions/czii-cryo-et-object-identification/discussion/546765",
  "author_name": "林炯基",
  "post_date": "2024-11-18T02:10:01.980000",
  "votes": 1,
  "comment_count": 11,
  "views": 0,
  "content": "<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F87cfa85792ebf57c995826b4eba62dfc%2F2024-11-18%2010-05-06.png?generation=1731895553397386&amp;alt=media\" alt=\"\"></p>\n<p>I tried to create a training.But I don’t know how to set up the mask here.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F96da43fec2f1b017cfcb9d17a17bc39f%2F2024-11-18%2010-07-43.png?generation=1731895680123672&amp;alt=media\" alt=\"\"></p>\n<p>The original code is from this person.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2Fd76a1485271c025cf110a8d3e177343b%2F2024-11-18%2010-08-52.png?generation=1731895749876041&amp;alt=media\" alt=\"？\"></p>",
  "messages": [
    {
      "id": 3048493,
      "postDate": "2024-11-18T03:11:43.943Z",
      "content": "<p>For beginners:</p>\n<ol>\n<li><p>First Step: Start by finding and replicating a solution that gives you the expected results. This means implementing a \"CORRECT\" solution.  <br>\n(The objective here is to understand a solution. If full understanding isn’t possible, aim to find a solution you can execute end-to-end.)</p></li>\n<li><p>Second Step: Next, work on improving the solution (or finding another one with better results). This is called the \"BEST\" solution.</p></li>\n</ol>\n<p>There are many solutions in the public code section. Explore other solutions to see how they set up the problem (e.g., model, ground truth, and post-processing to get coordinates).</p>\n<p>Especially consider the baseline solution provided by the host, DeepFindET (training, inference, and benchmark.csv).</p>\n<p>Finally, use tools like ChatGPT to help you quickly digest the code. You can ask questions, learn how to modify the code, and more.<br>\nExample: <a href=\"https://chatgpt.com/share/673aad78-252c-800b-b4a2-ed135871d513\" target=\"_blank\">https://chatgpt.com/share/673aad78-252c-800b-b4a2-ed135871d513</a></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ff69e4ba962d91a07268fa83f7cb5652c%2FSelection_999(6853).png?generation=1731898824708602&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "For beginners:\n\n1.  First Step: Start by finding and replicating a solution that gives you the expected results. This means implementing a \"CORRECT\" solution.  \n(The objective here is to understand a solution. If full understanding isn’t possible, aim to find a solution you can execute end-to-end.)\n\n2.  Second Step: Next, work on improving the solution (or finding another one with better results). This is called the \"BEST\" solution.\n\nThere are many solutions in the public code section. Explore other solutions to see how they set up the problem (e.g., model, ground truth, and post-processing to get coordinates).\n\nEspecially consider the baseline solution provided by the host, DeepFindET (training, inference, and benchmark.csv).\n\nFinally, use tools like ChatGPT to help you quickly digest the code. You can ask questions, learn how to modify the code, and more.\nExample: https://chatgpt.com/share/673aad78-252c-800b-b4a2-ed135871d513\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ff69e4ba962d91a07268fa83f7cb5652c%2FSelection_999(6853).png?generation=1731898824708602&alt=media)",
      "votes": 8,
      "replies": [
        {
          "id": 3048509,
          "postDate": "2024-11-18T03:41:43.670Z",
          "content": "<p>Thank you very much for your suggestion.</p>",
          "rawMarkdown": "Thank you very much for your suggestion."
        },
        {
          "id": 3048925,
          "postDate": "2024-11-18T13:44:23.383Z",
          "content": "<pre><code> ():\n     ():\n        . = train_id\n        .transform = transform\n        .phase = phase\n        .patch_size = patch_size  \n\n     ():\n         (.)\n\n     ():\n        \n        volume = read_one_data(.[idx], static_dir=)\n        label = read_one_truth(.[idx], overlay_dir=)\n\n        D, H, W = , ,   \n        mask = torch.zeros((D, H, W), dtype=torch.int32)\n\n        \n         p  PARTICLE:\n            particle_radius = p[]\n            mask_ = p[]\n            coordinates = label[p[]]\n            coordinates = torch.tensor(coordinates).long()\n\n            \n             coordinates.dim() == :\n                coordinates = coordinates.unsqueeze()  \n\n            coordinates = coordinates.().long()  \n\n            \n             coord  coordinates.squeeze():\n                x, y, z = coord\n                x_min, x_max = (, x - particle_radius), (W - , x + particle_radius)\n                y_min, y_max = (, y - particle_radius), (H - , y + particle_radius)\n                z_min, z_max = (, z - particle_radius), (D - , z + particle_radius)\n\n               \n                mask[z_min:z_max + , y_min:y_max + , x_min:x_max + ] = mask_\n\n        \n        patches_volume = []\n        patches_mask = []\n\n        \n         start  (, D, .patch_size):\n            end = (start + .patch_size, D)  \n            patch_volume = volume[start:end, :, :]\n            patch_mask = mask[start:end, :, :]\n\n            patches_volume.append(patch_volume)\n            patches_mask.append(patch_mask)\n\n        \n         .transform:\n            \n            patches_volume = [.transform(patch)  patch  patches_volume]\n\n         patches_volume, patches_mask\n</code></pre>\n<p>I don’t know where I went wrong, the mask is all zeros.</p>",
          "rawMarkdown": "```\nclass TrainDataset(Dataset):\n    def __init__(self, train_id, phase='train', transform=None, patch_size=32):\n        self.id = train_id\n        self.transform = transform\n        self.phase = phase\n        self.patch_size = patch_size  # 每个小块的深度（例如 32 切片）\n    \n    def __len__(self):\n        return len(self.id)\n\n    def __getitem__(self, idx):\n        # 读取原始数据和标签\n        volume = read_one_data(self.id[idx], static_dir=f'{train_dir}/static/ExperimentRuns')\n        label = read_one_truth(self.id[idx], overlay_dir=f'{train_dir}/overlay/ExperimentRuns')\n\n        D, H, W = 184, 630, 630  # Depth, Height, Width\n        mask = torch.zeros((D, H, W), dtype=torch.int32)\n\n        # 遍历粒子生成 mask\n        for p in PARTICLE:\n            particle_radius = p[\"radius\"]\n            mask_ = p[\"label\"]\n            coordinates = label[p['name']]\n            coordinates = torch.tensor(coordinates).long()\n\n            # 确保坐标是正确的形状 (n, 3)\n            if coordinates.dim() == 1:\n                coordinates = coordinates.unsqueeze(0)  # 如果是单个坐标，加一个维度\n            \n            coordinates = coordinates.round().long()  # 坐标四舍五入\n\n            # 根据每个坐标生成 mask\n            for coord in coordinates.squeeze():\n                x, y, z = coord\n                x_min, x_max = max(0, x - particle_radius), min(W - 1, x + particle_radius)\n                y_min, y_max = max(0, y - particle_radius), min(H - 1, y + particle_radius)\n                z_min, z_max = max(0, z - particle_radius), min(D - 1, z + particle_radius)\n\n               # 将这个范围内的 mask 设置为相应的 label\n                mask[z_min:z_max + 1, y_min:y_max + 1, x_min:x_max + 1] = mask_\n\n        # 切割 volume 和 mask 为多个块\n        patches_volume = []\n        patches_mask = []\n\n        # 使用 torch 的切片进行高效切割\n        for start in range(0, D, self.patch_size):\n            end = min(start + self.patch_size, D)  # 确保不会越界\n            patch_volume = volume[start:end, :, :]\n            patch_mask = mask[start:end, :, :]\n\n            patches_volume.append(patch_volume)\n            patches_mask.append(patch_mask)\n\n        # 如果有 transform，进行转换\n        if self.transform:\n            # 使用列表推导式并行化 transform 操作\n            patches_volume = [self.transform(patch) for patch in patches_volume]\n\n        return patches_volume, patches_mask\n```\nI don’t know where I went wrong, the mask is all zeros."
        },
        {
          "id": 3052167,
          "postDate": "2024-11-22T06:10:02.667Z",
          "content": "<p>Learned it!</p>",
          "rawMarkdown": "Learned it!"
        }
      ]
    },
    {
      "id": 3048462,
      "postDate": "2024-11-18T02:10:01.980Z",
      "content": "<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F87cfa85792ebf57c995826b4eba62dfc%2F2024-11-18%2010-05-06.png?generation=1731895553397386&amp;alt=media\" alt=\"\"></p>\n<p>I tried to create a training.But I don’t know how to set up the mask here.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F96da43fec2f1b017cfcb9d17a17bc39f%2F2024-11-18%2010-07-43.png?generation=1731895680123672&amp;alt=media\" alt=\"\"></p>\n<p>The original code is from this person.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2Fd76a1485271c025cf110a8d3e177343b%2F2024-11-18%2010-08-52.png?generation=1731895749876041&amp;alt=media\" alt=\"？\"></p>",
      "rawMarkdown": "![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F87cfa85792ebf57c995826b4eba62dfc%2F2024-11-18%2010-05-06.png?generation=1731895553397386&alt=media)\n\nI tried to create a training.But I don’t know how to set up the mask here.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F96da43fec2f1b017cfcb9d17a17bc39f%2F2024-11-18%2010-07-43.png?generation=1731895680123672&alt=media)\n\n\nThe original code is from this person.\n\n![？](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2Fd76a1485271c025cf110a8d3e177343b%2F2024-11-18%2010-08-52.png?generation=1731895749876041&alt=media)",
      "votes": 1
    },
    {
      "id": 3048510,
      "postDate": "2024-11-18T03:44:58.910Z",
      "content": "<blockquote>\n  <p>I tried to create a training.But I don’t know how to set up the mask here.</p>\n</blockquote>\n<p>The author says something, and I just add another. </p>\n<p>You can find the pseudo labels (some random nparray) from the code as your last screenshot, so what is the real one in this competition? It's obvious. </p>",
      "rawMarkdown": ">I tried to create a training.But I don’t know how to set up the mask here.\n\nThe author says something, and I just add another. \n\nYou can find the pseudo labels (some random nparray) from the code as your last screenshot, so what is the real one in this competition? It's obvious. ",
      "replies": [
        {
          "id": 3048517,
          "postDate": "2024-11-18T04:05:32.407Z",
          "content": "<p>Okay, I’m trying.</p>",
          "rawMarkdown": "Okay, I’m trying.",
          "replies": [
            {
              "id": 3048916,
              "postDate": "2024-11-18T13:40:28.133Z",
              "rawMarkdown": "",
              "isDeleted": true
            },
            {
              "id": 3048918,
              "postDate": "2024-11-18T13:40:56.090Z",
              "rawMarkdown": "",
              "isDeleted": true
            },
            {
              "id": 3048919,
              "postDate": "2024-11-18T13:41:19.043Z",
              "rawMarkdown": "",
              "isDeleted": true
            },
            {
              "id": 3048922,
              "postDate": "2024-11-18T13:41:48.027Z",
              "rawMarkdown": "",
              "isDeleted": true
            }
          ]
        },
        {
          "id": 3048924,
          "postDate": "2024-11-18T13:43:42.660Z",
          "content": "<p>I don’t know where I went wrong, the mask is all zeros.</p>\n<pre><code> ():\n     ():\n        . = train_id\n        .transform = transform\n        .phase = phase\n        .patch_size = patch_size  \n\n     ():\n         (.)\n\n     ():\n        \n        volume = read_one_data(.[idx], static_dir=)\n        label = read_one_truth(.[idx], overlay_dir=)\n\n        D, H, W = , ,   \n        mask = torch.zeros((D, H, W), dtype=torch.int32)\n\n        \n         p  PARTICLE:\n            particle_radius = p[]\n            mask_ = p[]\n            coordinates = label[p[]]\n            coordinates = torch.tensor(coordinates).long()\n\n            \n             coordinates.dim() == :\n                coordinates = coordinates.unsqueeze()  \n\n            coordinates = coordinates.().long()  \n\n            \n             coord  coordinates.squeeze():\n                x, y, z = coord\n                x_min, x_max = (, x - particle_radius), (W - , x + particle_radius)\n                y_min, y_max = (, y - particle_radius), (H - , y + particle_radius)\n                z_min, z_max = (, z - particle_radius), (D - , z + particle_radius)\n\n               \n                mask[z_min:z_max + , y_min:y_max + , x_min:x_max + ] = mask_\n\n        \n        patches_volume = []\n        patches_mask = []\n\n        \n         start  (, D, .patch_size):\n            end = (start + .patch_size, D)  \n            patch_volume = volume[start:end, :, :]\n            patch_mask = mask[start:end, :, :]\n\n            patches_volume.append(patch_volume)\n            patches_mask.append(patch_mask)\n\n        \n         .transform:\n            \n            patches_volume = [.transform(patch)  patch  patches_volume]\n\n         patches_volume, patches_mask\n</code></pre>",
          "rawMarkdown": "I don’t know where I went wrong, the mask is all zeros.\n```\nclass TrainDataset(Dataset):\n    def __init__(self, train_id, phase='train', transform=None, patch_size=32):\n        self.id = train_id\n        self.transform = transform\n        self.phase = phase\n        self.patch_size = patch_size  # 每个小块的深度（例如 32 切片）\n    \n    def __len__(self):\n        return len(self.id)\n\n    def __getitem__(self, idx):\n        # 读取原始数据和标签\n        volume = read_one_data(self.id[idx], static_dir=f'{train_dir}/static/ExperimentRuns')\n        label = read_one_truth(self.id[idx], overlay_dir=f'{train_dir}/overlay/ExperimentRuns')\n\n        D, H, W = 184, 630, 630  # Depth, Height, Width\n        mask = torch.zeros((D, H, W), dtype=torch.int32)\n\n        # 遍历粒子生成 mask\n        for p in PARTICLE:\n            particle_radius = p[\"radius\"]\n            mask_ = p[\"label\"]\n            coordinates = label[p['name']]\n            coordinates = torch.tensor(coordinates).long()\n\n            # 确保坐标是正确的形状 (n, 3)\n            if coordinates.dim() == 1:\n                coordinates = coordinates.unsqueeze(0)  # 如果是单个坐标，加一个维度\n            \n            coordinates = coordinates.round().long()  # 坐标四舍五入\n\n            # 根据每个坐标生成 mask\n            for coord in coordinates.squeeze():\n                x, y, z = coord\n                x_min, x_max = max(0, x - particle_radius), min(W - 1, x + particle_radius)\n                y_min, y_max = max(0, y - particle_radius), min(H - 1, y + particle_radius)\n                z_min, z_max = max(0, z - particle_radius), min(D - 1, z + particle_radius)\n\n               # 将这个范围内的 mask 设置为相应的 label\n                mask[z_min:z_max + 1, y_min:y_max + 1, x_min:x_max + 1] = mask_\n\n        # 切割 volume 和 mask 为多个块\n        patches_volume = []\n        patches_mask = []\n\n        # 使用 torch 的切片进行高效切割\n        for start in range(0, D, self.patch_size):\n            end = min(start + self.patch_size, D)  # 确保不会越界\n            patch_volume = volume[start:end, :, :]\n            patch_mask = mask[start:end, :, :]\n\n            patches_volume.append(patch_volume)\n            patches_mask.append(patch_mask)\n\n        # 如果有 transform，进行转换\n        if self.transform:\n            # 使用列表推导式并行化 transform 操作\n            patches_volume = [self.transform(patch) for patch in patches_volume]\n\n        return patches_volume, patches_mask\n```"
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 3048493,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2024-11-18T03:11:43.943000",
      "content": "<p>For beginners:</p>\n<ol>\n<li><p>First Step: Start by finding and replicating a solution that gives you the expected results. This means implementing a \"CORRECT\" solution.  <br>\n(The objective here is to understand a solution. If full understanding isn’t possible, aim to find a solution you can execute end-to-end.)</p></li>\n<li><p>Second Step: Next, work on improving the solution (or finding another one with better results). This is called the \"BEST\" solution.</p></li>\n</ol>\n<p>There are many solutions in the public code section. Explore other solutions to see how they set up the problem (e.g., model, ground truth, and post-processing to get coordinates).</p>\n<p>Especially consider the baseline solution provided by the host, DeepFindET (training, inference, and benchmark.csv).</p>\n<p>Finally, use tools like ChatGPT to help you quickly digest the code. You can ask questions, learn how to modify the code, and more.<br>\nExample: <a href=\"https://chatgpt.com/share/673aad78-252c-800b-b4a2-ed135871d513\" target=\"_blank\">https://chatgpt.com/share/673aad78-252c-800b-b4a2-ed135871d513</a></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ff69e4ba962d91a07268fa83f7cb5652c%2FSelection_999(6853).png?generation=1731898824708602&amp;alt=media\" alt=\"\"></p>",
      "votes": 8,
      "replies": [
        {
          "id": 3048509,
          "author_name": "林炯基",
          "author_url": "",
          "post_date": "2024-11-18T03:41:43.670000",
          "content": "<p>Thank you very much for your suggestion.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 3048925,
          "author_name": "林炯基",
          "author_url": "",
          "post_date": "2024-11-18T13:44:23.383000",
          "content": "<pre><code> ():\n     ():\n        . = train_id\n        .transform = transform\n        .phase = phase\n        .patch_size = patch_size  \n\n     ():\n         (.)\n\n     ():\n        \n        volume = read_one_data(.[idx], static_dir=)\n        label = read_one_truth(.[idx], overlay_dir=)\n\n        D, H, W = , ,   \n        mask = torch.zeros((D, H, W), dtype=torch.int32)\n\n        \n         p  PARTICLE:\n            particle_radius = p[]\n            mask_ = p[]\n            coordinates = label[p[]]\n            coordinates = torch.tensor(coordinates).long()\n\n            \n             coordinates.dim() == :\n                coordinates = coordinates.unsqueeze()  \n\n            coordinates = coordinates.().long()  \n\n            \n             coord  coordinates.squeeze():\n                x, y, z = coord\n                x_min, x_max = (, x - particle_radius), (W - , x + particle_radius)\n                y_min, y_max = (, y - particle_radius), (H - , y + particle_radius)\n                z_min, z_max = (, z - particle_radius), (D - , z + particle_radius)\n\n               \n                mask[z_min:z_max + , y_min:y_max + , x_min:x_max + ] = mask_\n\n        \n        patches_volume = []\n        patches_mask = []\n\n        \n         start  (, D, .patch_size):\n            end = (start + .patch_size, D)  \n            patch_volume = volume[start:end, :, :]\n            patch_mask = mask[start:end, :, :]\n\n            patches_volume.append(patch_volume)\n            patches_mask.append(patch_mask)\n\n        \n         .transform:\n            \n            patches_volume = [.transform(patch)  patch  patches_volume]\n\n         patches_volume, patches_mask\n</code></pre>\n<p>I don’t know where I went wrong, the mask is all zeros.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 3052167,
          "author_name": "Switch9527",
          "author_url": "",
          "post_date": "2024-11-22T06:10:02.667000",
          "content": "<p>Learned it!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3048510,
      "author_name": "Timmy Juicehouse",
      "author_url": "",
      "post_date": "2024-11-18T03:44:58.910000",
      "content": "<blockquote>\n  <p>I tried to create a training.But I don’t know how to set up the mask here.</p>\n</blockquote>\n<p>The author says something, and I just add another. </p>\n<p>You can find the pseudo labels (some random nparray) from the code as your last screenshot, so what is the real one in this competition? It's obvious. </p>",
      "votes": 0,
      "replies": [
        {
          "id": 3048517,
          "author_name": "林炯基",
          "author_url": "",
          "post_date": "2024-11-18T04:05:32.407000",
          "content": "<p>Okay, I’m trying.</p>",
          "votes": 0,
          "replies": [
            {
              "id": 3048916,
              "author_name": "",
              "author_url": "",
              "post_date": "2024-11-18T13:40:28.133000",
              "content": "",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3048918,
              "author_name": "",
              "author_url": "",
              "post_date": "2024-11-18T13:40:56.090000",
              "content": "",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3048919,
              "author_name": "",
              "author_url": "",
              "post_date": "2024-11-18T13:41:19.043000",
              "content": "",
              "votes": 0,
              "replies": []
            },
            {
              "id": 3048922,
              "author_name": "",
              "author_url": "",
              "post_date": "2024-11-18T13:41:48.027000",
              "content": "",
              "votes": 0,
              "replies": []
            }
          ]
        },
        {
          "id": 3048924,
          "author_name": "林炯基",
          "author_url": "",
          "post_date": "2024-11-18T13:43:42.660000",
          "content": "<p>I don’t know where I went wrong, the mask is all zeros.</p>\n<pre><code> ():\n     ():\n        . = train_id\n        .transform = transform\n        .phase = phase\n        .patch_size = patch_size  \n\n     ():\n         (.)\n\n     ():\n        \n        volume = read_one_data(.[idx], static_dir=)\n        label = read_one_truth(.[idx], overlay_dir=)\n\n        D, H, W = , ,   \n        mask = torch.zeros((D, H, W), dtype=torch.int32)\n\n        \n         p  PARTICLE:\n            particle_radius = p[]\n            mask_ = p[]\n            coordinates = label[p[]]\n            coordinates = torch.tensor(coordinates).long()\n\n            \n             coordinates.dim() == :\n                coordinates = coordinates.unsqueeze()  \n\n            coordinates = coordinates.().long()  \n\n            \n             coord  coordinates.squeeze():\n                x, y, z = coord\n                x_min, x_max = (, x - particle_radius), (W - , x + particle_radius)\n                y_min, y_max = (, y - particle_radius), (H - , y + particle_radius)\n                z_min, z_max = (, z - particle_radius), (D - , z + particle_radius)\n\n               \n                mask[z_min:z_max + , y_min:y_max + , x_min:x_max + ] = mask_\n\n        \n        patches_volume = []\n        patches_mask = []\n\n        \n         start  (, D, .patch_size):\n            end = (start + .patch_size, D)  \n            patch_volume = volume[start:end, :, :]\n            patch_mask = mask[start:end, :, :]\n\n            patches_volume.append(patch_volume)\n            patches_mask.append(patch_mask)\n\n        \n         .transform:\n            \n            patches_volume = [.transform(patch)  patch  patches_volume]\n\n         patches_volume, patches_mask\n</code></pre>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3048493": "For beginners:\n\n1.  First Step: Start by finding and replicating a solution that gives you the expected results. This means implementing a \"CORRECT\" solution.  \n(The objective here is to understand a solution. If full understanding isn’t possible, aim to find a solution you can execute end-to-end.)\n\n2.  Second Step: Next, work on improving the solution (or finding another one with better results). This is called the \"BEST\" solution.\n\nThere are many solutions in the public code section. Explore other solutions to see how they set up the problem (e.g., model, ground truth, and post-processing to get coordinates).\n\nEspecially consider the baseline solution provided by the host, DeepFindET (training, inference, and benchmark.csv).\n\nFinally, use tools like ChatGPT to help you quickly digest the code. You can ask questions, learn how to modify the code, and more.\nExample: https://chatgpt.com/share/673aad78-252c-800b-b4a2-ed135871d513\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ff69e4ba962d91a07268fa83f7cb5652c%2FSelection_999(6853).png?generation=1731898824708602&alt=media)",
    "3048462": "![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F87cfa85792ebf57c995826b4eba62dfc%2F2024-11-18%2010-05-06.png?generation=1731895553397386&alt=media)\n\nI tried to create a training.But I don’t know how to set up the mask here.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2F96da43fec2f1b017cfcb9d17a17bc39f%2F2024-11-18%2010-07-43.png?generation=1731895680123672&alt=media)\n\n\nThe original code is from this person.\n\n![？](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F21458017%2Fd76a1485271c025cf110a8d3e177343b%2F2024-11-18%2010-08-52.png?generation=1731895749876041&alt=media)",
    "3048510": ">I tried to create a training.But I don’t know how to set up the mask here.\n\nThe author says something, and I just add another. \n\nYou can find the pseudo labels (some random nparray) from the code as your last screenshot, so what is the real one in this competition? It's obvious. "
  }
}