{
  "id": 52385,
  "title": "Confusion about contest Timeline/April 11 deadline...",
  "url": "/competitions/data-science-bowl-2018/discussion/52385",
  "author_name": "",
  "post_date": "2018-03-19T20:18:46.699026Z",
  "votes": 8,
  "comment_count": 13,
  "views": 0,
  "content": "<p>After reading, and re-reading, the contest timelines, I have lots of questions that I cannot find answers to, hopefully someone can help clarify things for me.</p>\n\n<p>For this contest's timeline, there is an April 11 deadline for our model to be 'finalized and uploaded to Kaggle'. Then, April 16 is the 'Final submission deadline.'. What exactly happens between these dates? If our model is already finalized and uploaded to Kaggle on April 11, how do we send new submissions between April 11 and 16? Do we still create .csv submission files ourselves on our own machines and manually upload them to Kaggle, and we abide by an 'honour' system where we certify that the model we use to create our own submissions matches the code we've uploaded to Kaggle?</p>\n\n<p>If our uploaded models on Kaggle need to be used to create/submit submissions, then are there requirements on what scripts/drivers need to be uploaded as part of the model? I.e. do we need to supply specially named scripts like 'do_one_prediction  '? If we have specific python or package requirements, how do we ensure the kaggle machines have the right environment setup to run our scripts? Or are we given ssh access to some kaggle machines so we can login, install any necessary packages, and run our scripts manually? Are we supposed to upload weights for our models along with the model code, and if so, are those weights supposed to be fixed, or can we also deliver scripts like 'train_model  '?</p>\n\n<p>In short, it would be great if there was more clear/thorough submission requirements posted, so we can prepare for the deadlines properly.</p>\n\n<p>Thanks!</p>",
  "messages": [
    {
      "id": "298629",
      "postDate": "03/19/2018 20:18:46",
      "content": "<p>After reading, and re-reading, the contest timelines, I have lots of questions that I cannot find answers to, hopefully someone can help clarify things for me.</p>\n\n<p>For this contest's timeline, there is an April 11 deadline for our model to be 'finalized and uploaded to Kaggle'. Then, April 16 is the 'Final submission deadline.'. What exactly happens between these dates? If our model is already finalized and uploaded to Kaggle on April 11, how do we send new submissions between April 11 and 16? Do we still create .csv submission files ourselves on our own machines and manually upload them to Kaggle, and we abide by an 'honour' system where we certify that the model we use to create our own submissions matches the code we've uploaded to Kaggle?</p>\n\n<p>If our uploaded models on Kaggle need to be used to create/submit submissions, then are there requirements on what scripts/drivers need to be uploaded as part of the model? I.e. do we need to supply specially named scripts like 'do_one_prediction  '? If we have specific python or package requirements, how do we ensure the kaggle machines have the right environment setup to run our scripts? Or are we given ssh access to some kaggle machines so we can login, install any necessary packages, and run our scripts manually? Are we supposed to upload weights for our models along with the model code, and if so, are those weights supposed to be fixed, or can we also deliver scripts like 'train_model  '?</p>\n\n<p>In short, it would be great if there was more clear/thorough submission requirements posted, so we can prepare for the deadlines properly.</p>\n\n<p>Thanks!</p>",
      "rawMarkdown": "After reading, and re-reading, the contest timelines, I have lots of questions that I cannot find answers to, hopefully someone can help clarify things for me.\n\nFor this contest's timeline, there is an April 11 deadline for our model to be 'finalized and uploaded to Kaggle'. Then, April 16 is the 'Final submission deadline.'. What exactly happens between these dates? If our model is already finalized and uploaded to Kaggle on April 11, how do we send new submissions between April 11 and 16? Do we still create .csv submission files ourselves on our own machines and manually upload them to Kaggle, and we abide by an 'honour' system where we certify that the model we use to create our own submissions matches the code we've uploaded to Kaggle?\n\nIf our uploaded models on Kaggle need to be used to create/submit submissions, then are there requirements on what scripts/drivers need to be uploaded as part of the model? I.e. do we need to supply specially named scripts like 'do_one_prediction",
      "votes": null
    },
    {
      "id": "298650",
      "postDate": "03/19/2018 20:46:54",
      "content": "<p>hi Liam,</p>\n\n<p>a two stage contest (usually) works like this:\n- by the first deadline you need to upload your finalized \"model\" to kaggle; this means you need to upload EVERYTHING needed to reproduce your results; this would mean the scripts (python, R, shell) + any \"internal\" data (i.e. manual fixes to the masks etc.)</p>\n\n<ul>\n<li>btw. the upload link for the model should be under the \"Team\" menu (<a href=\"https://www.kaggle.com/c/data-science-bowl-2018/team\">https://www.kaggle.com/c/data-science-bowl-2018/team</a>) but it's not visible yet</li>\n</ul>\n\n<p>@Wendy Kan - can you please confirm the location where we can upload the models? Usually its under \"Team\" but can't see it right now</p>\n\n<ul>\n<li><p>I guess that for external data it should be enough to put in links to the data (don't forget to also post those links on the discussion forum 1 WEEK BEFORE the deadline)</p></li>\n<li><p>putting exact library requirements doesn't hurt either :)</p></li>\n</ul>\n\n<p>After the first stage deadline Kaggle will release the \"real\" test set - basically you should only download this test set and  create predictions using the same code as you submitted; these new predictions you will submit the same</p>\n\n<p>hope this helps</p>",
      "rawMarkdown": "hi Liam,\n\na two stage contest (usually) works like this:\n- by the first deadline you need to upload your finalized \"model\" to kaggle; this means you need to upload EVERYTHING needed to reproduce your results; this would mean the scripts (python, R, shell) + any \"internal\" data (i.e. manual fixes to the masks etc.)\n\n- btw. the upload link for the model should be under the \"Team\" menu (https://www.kaggle.com/c/data-science-bowl-2018/team) but it's not visible yet\n\n@Wendy Kan - can you please confirm the location where we can upload the models? Usually its under \"Team\" but can't see it right now\n\n- I guess that for external data it should be enough to put in links to the data (don't forget to also post those links on the discussion forum 1 WEEK BEFORE the deadline)\n\n- putting exact library requirements doesn't hurt either :)\n\nAfter the first stage deadline Kaggle will release the \"real\" test set - basically you should only download this test set and  create predictions using the same code as you submitted; these new predictions you will submit the same\n\nhope this helps",
      "votes": null
    },
    {
      "id": "298837",
      "postDate": "03/20/2018 04:12:33",
      "content": "<p>Hi @steelrose,</p>\n\n<p>It's my first time to join this kind of competition in kaggle and it's useful to me.</p>\n\n<p>But I have some questions, \n1, if I need to write a readme when I upload my code before 4.11? How do organisers know to use my code and check them with final test results? Is readme just for prize people(top5 in stage 2)?\n2, Should I upload the trained model or just the code? The size of trained model is large.\n3, In submissions, I find that I need to choose 2 final results. What is it ?</p>\n\n<p>Thanks.</p>",
      "rawMarkdown": "Hi @steelrose,\n\nIt's my first time to join this kind of competition in kaggle and it's useful to me.\n\nBut I have some questions, \n1, if I need to write a readme when I upload my code before 4.11? How do organisers know to use my code and check them with final test results? Is readme just for prize people(top5 in stage 2)?\n2, Should I upload the trained model or just the code? The size of trained model is large.\n3, In submissions, I find that I need to choose 2 final results. What is it ?\n\nThanks.",
      "votes": null
    },
    {
      "id": "298920",
      "postDate": "03/20/2018 06:44:20",
      "content": "<ul>\n<li><p>generally you should expect that Kaggle will need to verify your solution if you end up \"in the money\" (i.e. on one of the money rewarded positions), since you're pretty close I would prepare it just in case (you can also wait for the 2nd stage to finish, usually they give a few days to the winning teams to do the docu)</p></li>\n<li><p>you can upload everything; with big files the usual way is that you will:</p>\n\n<ol><li><p>create a zip (or 7z or whatever) file; calculate a sha256 sum (or sha1) of the file</p></li>\n<li><p>upload the zip to any convenient location (doesn't need to be Kaggle; you can just store it on Google Drive, Dropbox or whatever)</p></li>\n<li><p>and upload the hash (sha1 or sha256) to Kaggle; this way when you win, kaggle will be able to verify that if they will ask you for the code, the file matches with the one that you already had in the past (and that's why I prefer sha256)</p></li></ol></li>\n</ul>\n\n<p>NOTE: you can always upload just one file to Kaggle, so if you decide to go with the hash upload just the hash, otherwise upload a zip file (which could include code + hash of the weights file for example)</p>\n\n<p>Regarding the 2 submissions - you can have multiple model / code variants (but all need to be published BEFORE the deadline), so you can produce any number of submissions for Stage 2; in the end you will have to choose only two of the submission (which in your opinion have the highest chance of winning)</p>",
      "rawMarkdown": "generally you should expect that Kaggle will need to verify your solution if you end up \"in the money\" (i.e. on one of the money rewarded positions), since you're pretty close I would prepare it just in case (you can also wait for the 2nd stage to finish, usually they give a few days to the winning teams to do the docu)\n\n- you can upload everything; with big files the usual way is that you will:\n1. create a zip (or 7z or whatever) file; calculate a sha256 sum (or sha1) of the file\n\n2. upload the zip to any convenient location (doesn't need to be Kaggle; you can just store it on Google Drive, Dropbox or whatever)\n\n3. and upload the hash (sha1 or sha256) to Kaggle; this way when you win, kaggle will be able to verify that if they will ask you for the code, the file matches with the one that you already had in the past (and that's why I prefer sha256)\n\nNOTE: you can always upload just one file to Kaggle, so if you decide to go with the hash upload just the hash, otherwise upload a zip file (which could include code + hash of the weights file for example)\n\nRegarding the 2 submissions - you can have multiple model / code variants (but all need to be published BEFORE the deadline), so you can produce any number of submissions for Stage 2; in the end you will have to choose only two of the submission (which in your opinion have the highest chance of winning)",
      "votes": null
    },
    {
      "id": "298934",
      "postDate": "03/20/2018 07:06:40",
      "content": "<p>Thank you very much!</p>",
      "rawMarkdown": "Thank you very much!",
      "votes": null
    },
    {
      "id": "299246",
      "postDate": "03/20/2018 17:48:40",
      "content": "<p>@Liam, </p>\n\n<p>We have a two stage competition FAQ <a href=\"https://www.kaggle.com/two-stage-faq\">here</a>. <a href=\"https://www.kaggle.com/two-stage-faq\">https://www.kaggle.com/two-stage-faq</a></p>",
      "rawMarkdown": "Liam, \n\nWe have a two stage competition FAQ [here][1]. https://www.kaggle.com/two-stage-faq\n\n\n  [1]: https://www.kaggle.com/two-stage-faq",
      "votes": null
    },
    {
      "id": "299339",
      "postDate": "03/20/2018 19:57:04",
      "content": "<p>Hi Wendy,</p>\n\n<p>Thanks for that link, that was exactly what I was looking for. It may be useful to post that link directly under the 'Overview-&gt;Timeline' section of this competition.</p>\n\n<p>Thanks,\nLiam.</p>",
      "rawMarkdown": "Hi Wendy,\n\nThanks for that link, that was exactly what I was looking for. It may be useful to post that link directly under the 'Overview-&gt;Timeline' section of this competition.\n\nThanks,\nLiam.",
      "votes": null
    },
    {
      "id": "299341",
      "postDate": "03/20/2018 19:57:32",
      "content": "<p>Thanks for the info @steelrose, much appreciated.</p>",
      "rawMarkdown": "Thanks for the info @steelrose, much appreciated.",
      "votes": null
    },
    {
      "id": "304240",
      "postDate": "03/27/2018 08:15:50",
      "content": "<p>@steelrose  uploading sha256 is very clever, danke! </p>",
      "rawMarkdown": "steelrose  uploading sha256 is very clever, danke!",
      "votes": null
    },
    {
      "id": "306950",
      "postDate": "03/31/2018 12:01:11",
      "content": "<p>@Wendy, </p>\n\n<p>From the FAQ, we're allowed to train re-train our model at the stage 2. I still have some questions:</p>\n\n<ol>\n<li><p>If the code stays unchanged, are we allowed to add the test images of the stage 1 to the path of our training set ($TRAIN_PATH) after the labelled data have been released? says, our uploaded code can accept multiple options</p>\n\n<p>$python our_script  --train $TRAIN_PATH <br>\n$python our_script  --predict $TEST_PATH</p></li>\n<li><p>If 1 is allowed, our stage 1 model will be changed after being retrained but we can't upload the re-trained model anymore, can we still make submissions using the re-trained model at the stage 2?</p></li>\n<li><p>We're required to upload our models only if we're in the prize position, does a medal position count as well? </p></li>\n</ol>",
      "rawMarkdown": "Wendy, \n\nFrom the FAQ, we're allowed to train re-train our model at the stage 2. I still have some questions:\n \n1. If the code stays unchanged, are we allowed to add the test images of the stage 1 to the path of our training set ($TRAIN_PATH) after the labelled data have been released? says, our uploaded code can accept multiple options\n\n    $python our_script  --train $TRAIN_PATH  \n    $python our_script  --predict $TEST_PATH\n\n2. If 1 is allowed, our stage 1 model will be changed after being retrained but we can't upload the re-trained model anymore, can we still make submissions using the re-trained model at the stage 2?\n\n3. We're required to upload our models only if we're in the prize position, does a medal position count as well?",
      "votes": null
    },
    {
      "id": "309194",
      "postDate": "04/04/2018 19:30:38",
      "content": "<p>@Nicole,\nYou're going to upload your code, not the \"model files\". So answering your questions 1. code is unchanged so that's all you need to upload, 2. code only, not the model files, you can make submissions based on the retrained models with the same code. 3. generally yes, but we are a lot less strict on the medal positions that are not prize winning. </p>\n\n<p>Quote from the FAQ: </p>\n\n<blockquote>\n  <p>What should I upload? When you upload a model, you pack all the code that you are eventually going to use to generate your submission csv file. If your models generate some output files containing the weights, for example, ‘.caffemodel’ or ‘.tfmodel’ files, you are NOT required to submit those. However, you should submit the code used to generate those files.</p>\n</blockquote>",
      "rawMarkdown": "Nicole,\nYou're going to upload your code, not the \"model files\". So answering your questions 1. code is unchanged so that's all you need to upload, 2. code only, not the model files, you can make submissions based on the retrained models with the same code. 3. generally yes, but we are a lot less strict on the medal positions that are not prize winning. \n\nQuote from the FAQ: \n\n&gt; What should I upload? When you upload a model, you pack all the code that you are eventually going to use to generate your submission csv file. If your models generate some output files containing the weights, for example, ‘.caffemodel’ or ‘.tfmodel’ files, you are NOT required to submit those. However, you should submit the code used to generate those files.",
      "votes": null
    },
    {
      "id": "309202",
      "postDate": "04/04/2018 19:45:40",
      "content": "<p>@Wendy, awesome, thank you!</p>",
      "rawMarkdown": "Wendy, awesome, thank you!",
      "votes": null
    },
    {
      "id": "311240",
      "postDate": "04/09/2018 17:13:36",
      "content": "<p>@Wendy, </p>\n\n<ol>\n<li><p>Since we can keep training at the stage 2, do we have to document how many <strong>epochs</strong> we're going to train in the document we're going to upload at the end of the stage 1 (end of April 11)?  or epochs can be changed at the stage 2, since epochs can be part of <strong>HPO</strong></p></li>\n<li><p>Our code is an automated pipeline (CLI), so we can pass different parameters to determine epochs , data augmentation and so on we want to use <strong>without changing code</strong>, but I am not sure if we have to document all commands we are going to do and we're not allowed to change at the stage 2, since <strong>issuing commands</strong> is a manual step.</p></li>\n</ol>\n\n<p>for example: do we need to document all commands at this level of detail and we \"HAVE\" to follow all commands we documented at the stage 2? Not quite sure what Kaggle rules mean \"as long as it's fully automated, you can tune your parameters\" </p>\n\n<pre><code>python ourscript.py  train --epoch 20 --rotate  --greyonly (training with rotated data)\npython ourscript.py  train --epoch 10 --noise  --colouronly   (training with noise data)\n</code></pre>\n\n<p>I know we probably don't need to worry about this much since we're far from the prize / gold medals, but we still want to be careful about rules. </p>",
      "rawMarkdown": "Wendy, \n\n 1. Since we can keep training at the stage 2, do we have to document how many **epochs** we're going to train in the document we're going to upload at the end of the stage 1 (end of April 11)?  or epochs can be changed at the stage 2, since epochs can be part of **HPO**\n\n 2. Our code is an automated pipeline (CLI), so we can pass different parameters to determine epochs , data augmentation and so on we want to use **without changing code**, but I am not sure if we have to document all commands we are going to do and we're not allowed to change at the stage 2, since **issuing commands** is a manual step.\n\nfor example: do we need to document all commands at this level of detail and we \"HAVE\" to follow all commands we documented at the stage 2? Not quite sure what Kaggle rules mean \"as long as it's fully automated, you can tune your parameters\" \n\n    python ourscript.py  train --epoch 20 --rotate  --greyonly (training with rotated data)\n    python ourscript.py  train --epoch 10 --noise  --colouronly   (training with noise data)\n\nI know we probably don't need to worry about this much since we're far from the prize / gold medals, but we still want to be careful about rules.",
      "votes": null
    },
    {
      "id": "312448",
      "postDate": "04/11/2018 19:18:43",
      "content": "<p>@Wendy I can answer my own question, I totally misunderstood the stage 2 rules. I thought we could train a model that we hadn't submitted at the stage 1, as long as the code doesn't change at the stage 2 and we documented in the uploaded code. A Kaggle grandmaster told me that's not right, we could only train the model at the stage 2 based on the model we had submitted at the stage 1.  We just started training our new code last night, too late anyway, we'll have to choose two of our best submissions. </p>",
      "rawMarkdown": "Wendy I can answer my own question, I totally misunderstood the stage 2 rules. I thought we could train a model that we hadn't submitted at the stage 1, as long as the code doesn't change at the stage 2 and we documented in the uploaded code. A Kaggle grandmaster told me that's not right, we could only train the model at the stage 2 based on the model we had submitted at the stage 1.  We just started training our new code last night, too late anyway, we'll have to choose two of our best submissions.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 298650,
      "author_name": "steelrose",
      "author_url": "",
      "post_date": "03/19/2018 20:46:54",
      "content": "<p>hi Liam,</p>\n\n<p>a two stage contest (usually) works like this:\n- by the first deadline you need to upload your finalized \"model\" to kaggle; this means you need to upload EVERYTHING needed to reproduce your results; this would mean the scripts (python, R, shell) + any \"internal\" data (i.e. manual fixes to the masks etc.)</p>\n\n<ul>\n<li>btw. the upload link for the model should be under the \"Team\" menu (<a href=\"https://www.kaggle.com/c/data-science-bowl-2018/team\">https://www.kaggle.com/c/data-science-bowl-2018/team</a>) but it's not visible yet</li>\n</ul>\n\n<p>@Wendy Kan - can you please confirm the location where we can upload the models? Usually its under \"Team\" but can't see it right now</p>\n\n<ul>\n<li><p>I guess that for external data it should be enough to put in links to the data (don't forget to also post those links on the discussion forum 1 WEEK BEFORE the deadline)</p></li>\n<li><p>putting exact library requirements doesn't hurt either :)</p></li>\n</ul>\n\n<p>After the first stage deadline Kaggle will release the \"real\" test set - basically you should only download this test set and  create predictions using the same code as you submitted; these new predictions you will submit the same</p>\n\n<p>hope this helps</p>",
      "votes": null,
      "replies": [
        {
          "id": 298837,
          "author_name": "bonsen",
          "author_url": "",
          "post_date": "03/20/2018 04:12:33",
          "content": "<p>Hi @steelrose,</p>\n\n<p>It's my first time to join this kind of competition in kaggle and it's useful to me.</p>\n\n<p>But I have some questions, \n1, if I need to write a readme when I upload my code before 4.11? How do organisers know to use my code and check them with final test results? Is readme just for prize people(top5 in stage 2)?\n2, Should I upload the trained model or just the code? The size of trained model is large.\n3, In submissions, I find that I need to choose 2 final results. What is it ?</p>\n\n<p>Thanks.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 298920,
          "author_name": "steelrose",
          "author_url": "",
          "post_date": "03/20/2018 06:44:20",
          "content": "<ul>\n<li><p>generally you should expect that Kaggle will need to verify your solution if you end up \"in the money\" (i.e. on one of the money rewarded positions), since you're pretty close I would prepare it just in case (you can also wait for the 2nd stage to finish, usually they give a few days to the winning teams to do the docu)</p></li>\n<li><p>you can upload everything; with big files the usual way is that you will:</p>\n\n<ol><li><p>create a zip (or 7z or whatever) file; calculate a sha256 sum (or sha1) of the file</p></li>\n<li><p>upload the zip to any convenient location (doesn't need to be Kaggle; you can just store it on Google Drive, Dropbox or whatever)</p></li>\n<li><p>and upload the hash (sha1 or sha256) to Kaggle; this way when you win, kaggle will be able to verify that if they will ask you for the code, the file matches with the one that you already had in the past (and that's why I prefer sha256)</p></li></ol></li>\n</ul>\n\n<p>NOTE: you can always upload just one file to Kaggle, so if you decide to go with the hash upload just the hash, otherwise upload a zip file (which could include code + hash of the weights file for example)</p>\n\n<p>Regarding the 2 submissions - you can have multiple model / code variants (but all need to be published BEFORE the deadline), so you can produce any number of submissions for Stage 2; in the end you will have to choose only two of the submission (which in your opinion have the highest chance of winning)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 298934,
          "author_name": "bonsen",
          "author_url": "",
          "post_date": "03/20/2018 07:06:40",
          "content": "<p>Thank you very much!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 299341,
          "author_name": "jliamfinnie",
          "author_url": "",
          "post_date": "03/20/2018 19:57:32",
          "content": "<p>Thanks for the info @steelrose, much appreciated.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 304240,
          "author_name": "nicolefinnie",
          "author_url": "",
          "post_date": "03/27/2018 08:15:50",
          "content": "<p>@steelrose  uploading sha256 is very clever, danke! </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 299246,
      "author_name": "wendykan",
      "author_url": "",
      "post_date": "03/20/2018 17:48:40",
      "content": "<p>@Liam, </p>\n\n<p>We have a two stage competition FAQ <a href=\"https://www.kaggle.com/two-stage-faq\">here</a>. <a href=\"https://www.kaggle.com/two-stage-faq\">https://www.kaggle.com/two-stage-faq</a></p>",
      "votes": null,
      "replies": [
        {
          "id": 299339,
          "author_name": "jliamfinnie",
          "author_url": "",
          "post_date": "03/20/2018 19:57:04",
          "content": "<p>Hi Wendy,</p>\n\n<p>Thanks for that link, that was exactly what I was looking for. It may be useful to post that link directly under the 'Overview-&gt;Timeline' section of this competition.</p>\n\n<p>Thanks,\nLiam.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 306950,
          "author_name": "nicolefinnie",
          "author_url": "",
          "post_date": "03/31/2018 12:01:11",
          "content": "<p>@Wendy, </p>\n\n<p>From the FAQ, we're allowed to train re-train our model at the stage 2. I still have some questions:</p>\n\n<ol>\n<li><p>If the code stays unchanged, are we allowed to add the test images of the stage 1 to the path of our training set ($TRAIN_PATH) after the labelled data have been released? says, our uploaded code can accept multiple options</p>\n\n<p>$python our_script  --train $TRAIN_PATH <br>\n$python our_script  --predict $TEST_PATH</p></li>\n<li><p>If 1 is allowed, our stage 1 model will be changed after being retrained but we can't upload the re-trained model anymore, can we still make submissions using the re-trained model at the stage 2?</p></li>\n<li><p>We're required to upload our models only if we're in the prize position, does a medal position count as well? </p></li>\n</ol>",
          "votes": null,
          "replies": []
        },
        {
          "id": 309194,
          "author_name": "wendykan",
          "author_url": "",
          "post_date": "04/04/2018 19:30:38",
          "content": "<p>@Nicole,\nYou're going to upload your code, not the \"model files\". So answering your questions 1. code is unchanged so that's all you need to upload, 2. code only, not the model files, you can make submissions based on the retrained models with the same code. 3. generally yes, but we are a lot less strict on the medal positions that are not prize winning. </p>\n\n<p>Quote from the FAQ: </p>\n\n<blockquote>\n  <p>What should I upload? When you upload a model, you pack all the code that you are eventually going to use to generate your submission csv file. If your models generate some output files containing the weights, for example, ‘.caffemodel’ or ‘.tfmodel’ files, you are NOT required to submit those. However, you should submit the code used to generate those files.</p>\n</blockquote>",
          "votes": null,
          "replies": []
        },
        {
          "id": 309202,
          "author_name": "nicolefinnie",
          "author_url": "",
          "post_date": "04/04/2018 19:45:40",
          "content": "<p>@Wendy, awesome, thank you!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 311240,
          "author_name": "nicolefinnie",
          "author_url": "",
          "post_date": "04/09/2018 17:13:36",
          "content": "<p>@Wendy, </p>\n\n<ol>\n<li><p>Since we can keep training at the stage 2, do we have to document how many <strong>epochs</strong> we're going to train in the document we're going to upload at the end of the stage 1 (end of April 11)?  or epochs can be changed at the stage 2, since epochs can be part of <strong>HPO</strong></p></li>\n<li><p>Our code is an automated pipeline (CLI), so we can pass different parameters to determine epochs , data augmentation and so on we want to use <strong>without changing code</strong>, but I am not sure if we have to document all commands we are going to do and we're not allowed to change at the stage 2, since <strong>issuing commands</strong> is a manual step.</p></li>\n</ol>\n\n<p>for example: do we need to document all commands at this level of detail and we \"HAVE\" to follow all commands we documented at the stage 2? Not quite sure what Kaggle rules mean \"as long as it's fully automated, you can tune your parameters\" </p>\n\n<pre><code>python ourscript.py  train --epoch 20 --rotate  --greyonly (training with rotated data)\npython ourscript.py  train --epoch 10 --noise  --colouronly   (training with noise data)\n</code></pre>\n\n<p>I know we probably don't need to worry about this much since we're far from the prize / gold medals, but we still want to be careful about rules. </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 312448,
          "author_name": "nicolefinnie",
          "author_url": "",
          "post_date": "04/11/2018 19:18:43",
          "content": "<p>@Wendy I can answer my own question, I totally misunderstood the stage 2 rules. I thought we could train a model that we hadn't submitted at the stage 1, as long as the code doesn't change at the stage 2 and we documented in the uploaded code. A Kaggle grandmaster told me that's not right, we could only train the model at the stage 2 based on the model we had submitted at the stage 1.  We just started training our new code last night, too late anyway, we'll have to choose two of our best submissions. </p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "298629": "After reading, and re-reading, the contest timelines, I have lots of questions that I cannot find answers to, hopefully someone can help clarify things for me.\n\nFor this contest's timeline, there is an April 11 deadline for our model to be 'finalized and uploaded to Kaggle'. Then, April 16 is the 'Final submission deadline.'. What exactly happens between these dates? If our model is already finalized and uploaded to Kaggle on April 11, how do we send new submissions between April 11 and 16? Do we still create .csv submission files ourselves on our own machines and manually upload them to Kaggle, and we abide by an 'honour' system where we certify that the model we use to create our own submissions matches the code we've uploaded to Kaggle?\n\nIf our uploaded models on Kaggle need to be used to create/submit submissions, then are there requirements on what scripts/drivers need to be uploaded as part of the model? I.e. do we need to supply specially named scripts like 'do_one_prediction",
    "298650": "hi Liam,\n\na two stage contest (usually) works like this:\n- by the first deadline you need to upload your finalized \"model\" to kaggle; this means you need to upload EVERYTHING needed to reproduce your results; this would mean the scripts (python, R, shell) + any \"internal\" data (i.e. manual fixes to the masks etc.)\n\n- btw. the upload link for the model should be under the \"Team\" menu (https://www.kaggle.com/c/data-science-bowl-2018/team) but it's not visible yet\n\n@Wendy Kan - can you please confirm the location where we can upload the models? Usually its under \"Team\" but can't see it right now\n\n- I guess that for external data it should be enough to put in links to the data (don't forget to also post those links on the discussion forum 1 WEEK BEFORE the deadline)\n\n- putting exact library requirements doesn't hurt either :)\n\nAfter the first stage deadline Kaggle will release the \"real\" test set - basically you should only download this test set and  create predictions using the same code as you submitted; these new predictions you will submit the same\n\nhope this helps",
    "298837": "Hi @steelrose,\n\nIt's my first time to join this kind of competition in kaggle and it's useful to me.\n\nBut I have some questions, \n1, if I need to write a readme when I upload my code before 4.11? How do organisers know to use my code and check them with final test results? Is readme just for prize people(top5 in stage 2)?\n2, Should I upload the trained model or just the code? The size of trained model is large.\n3, In submissions, I find that I need to choose 2 final results. What is it ?\n\nThanks.",
    "298920": "generally you should expect that Kaggle will need to verify your solution if you end up \"in the money\" (i.e. on one of the money rewarded positions), since you're pretty close I would prepare it just in case (you can also wait for the 2nd stage to finish, usually they give a few days to the winning teams to do the docu)\n\n- you can upload everything; with big files the usual way is that you will:\n1. create a zip (or 7z or whatever) file; calculate a sha256 sum (or sha1) of the file\n\n2. upload the zip to any convenient location (doesn't need to be Kaggle; you can just store it on Google Drive, Dropbox or whatever)\n\n3. and upload the hash (sha1 or sha256) to Kaggle; this way when you win, kaggle will be able to verify that if they will ask you for the code, the file matches with the one that you already had in the past (and that's why I prefer sha256)\n\nNOTE: you can always upload just one file to Kaggle, so if you decide to go with the hash upload just the hash, otherwise upload a zip file (which could include code + hash of the weights file for example)\n\nRegarding the 2 submissions - you can have multiple model / code variants (but all need to be published BEFORE the deadline), so you can produce any number of submissions for Stage 2; in the end you will have to choose only two of the submission (which in your opinion have the highest chance of winning)",
    "298934": "Thank you very much!",
    "299246": "Liam, \n\nWe have a two stage competition FAQ [here][1]. https://www.kaggle.com/two-stage-faq\n\n\n  [1]: https://www.kaggle.com/two-stage-faq",
    "299339": "Hi Wendy,\n\nThanks for that link, that was exactly what I was looking for. It may be useful to post that link directly under the 'Overview-&gt;Timeline' section of this competition.\n\nThanks,\nLiam.",
    "299341": "Thanks for the info @steelrose, much appreciated.",
    "304240": "steelrose  uploading sha256 is very clever, danke!",
    "306950": "Wendy, \n\nFrom the FAQ, we're allowed to train re-train our model at the stage 2. I still have some questions:\n \n1. If the code stays unchanged, are we allowed to add the test images of the stage 1 to the path of our training set ($TRAIN_PATH) after the labelled data have been released? says, our uploaded code can accept multiple options\n\n    $python our_script  --train $TRAIN_PATH  \n    $python our_script  --predict $TEST_PATH\n\n2. If 1 is allowed, our stage 1 model will be changed after being retrained but we can't upload the re-trained model anymore, can we still make submissions using the re-trained model at the stage 2?\n\n3. We're required to upload our models only if we're in the prize position, does a medal position count as well?",
    "309194": "Nicole,\nYou're going to upload your code, not the \"model files\". So answering your questions 1. code is unchanged so that's all you need to upload, 2. code only, not the model files, you can make submissions based on the retrained models with the same code. 3. generally yes, but we are a lot less strict on the medal positions that are not prize winning. \n\nQuote from the FAQ: \n\n&gt; What should I upload? When you upload a model, you pack all the code that you are eventually going to use to generate your submission csv file. If your models generate some output files containing the weights, for example, ‘.caffemodel’ or ‘.tfmodel’ files, you are NOT required to submit those. However, you should submit the code used to generate those files.",
    "309202": "Wendy, awesome, thank you!",
    "311240": "Wendy, \n\n 1. Since we can keep training at the stage 2, do we have to document how many **epochs** we're going to train in the document we're going to upload at the end of the stage 1 (end of April 11)?  or epochs can be changed at the stage 2, since epochs can be part of **HPO**\n\n 2. Our code is an automated pipeline (CLI), so we can pass different parameters to determine epochs , data augmentation and so on we want to use **without changing code**, but I am not sure if we have to document all commands we are going to do and we're not allowed to change at the stage 2, since **issuing commands** is a manual step.\n\nfor example: do we need to document all commands at this level of detail and we \"HAVE\" to follow all commands we documented at the stage 2? Not quite sure what Kaggle rules mean \"as long as it's fully automated, you can tune your parameters\" \n\n    python ourscript.py  train --epoch 20 --rotate  --greyonly (training with rotated data)\n    python ourscript.py  train --epoch 10 --noise  --colouronly   (training with noise data)\n\nI know we probably don't need to worry about this much since we're far from the prize / gold medals, but we still want to be careful about rules.",
    "312448": "Wendy I can answer my own question, I totally misunderstood the stage 2 rules. I thought we could train a model that we hadn't submitted at the stage 1, as long as the code doesn't change at the stage 2 and we documented in the uploaded code. A Kaggle grandmaster told me that's not right, we could only train the model at the stage 2 based on the model we had submitted at the stage 1.  We just started training our new code last night, too late anyway, we'll have to choose two of our best submissions."
  },
  "source": "meta"
}