{
  "id": 262364,
  "title": "10th place solution ",
  "url": "/competitions/google-smartphone-decimeter-challenge/writeups/fumihiro-kaneko-10th-place-solution",
  "author_name": "",
  "post_date": "2021-08-09T12:54:42.727Z",
  "votes": 24,
  "comment_count": 1,
  "views": 0,
  "content": "<p>Thanks to kaggle and organizers hosting a nice competition.</p>\n<h2>Overview</h2>\n<ul>\n<li>Predicting the Noise, <code>Noise = Ground Truth - Baseline</code>, like denoising in computer vision</li>\n<li>Using the speed <code>latDeg(t + dt) - latDeg(t)/dt</code>  as input  instead of the absolute position to prevent model from overfitting on the train dataset.</li>\n<li>Making 2D image input with Short Time Fourie Transform, STFT, and then using ImageNet convolutional neural network</li>\n</ul>\n<p><img src=\"https://user-images.githubusercontent.com/61892693/128517005-bad904b0-46e0-4af5-ae53-993e85b97de9.png\" alt=\"pipeline\"><br>\n<img src=\"https://user-images.githubusercontent.com/61892693/128673932-a1fb3b34-df4b-42f4-8485-890f9b35b8d4.png\" alt=\"best_vs_host_baseline\"></p>\n<h2>STFT and Conv Network Part</h2>\n<ul>\n<li>Input: Using <a href=\"https://librosa.org/doc/latest/index.html\" target=\"_blank\">librosa</a>,  generating STFT for both latDeg&amp;lngDeg speeds.<ul>\n<li>Each phone sequence are split into 256 seconds sequence then STFT with <code>n_tft=256</code>, <code>hop_length=1</code> and <code>win_length=16</code> , result in (256, 127, 2) feature for each degree. The following 2D images are generated  from 1D sequence.</li></ul></li>\n</ul>\n<p><img src=\"https://user-images.githubusercontent.com/61892693/128517031-3e2343f7-7a57-4ec9-bb3e-89c09c6542ba.png\" alt=\"stft_images\"></p>\n<ul>\n<li><p>Model: Regression and Segmentation</p>\n<ul>\n<li><p>Regression: EfficientNet B3, predict latDeg&amp;lngDeg noise, </p></li>\n<li><p>Segmentation: Unet ++ with EfficientNet encoder(<a href=\"https://github.com/qubvel/segmentation_models.pytorch\" target=\"_blank\">segmentation pyroch</a>) , predict stft  noise</p>\n<ul>\n<li><p>segmentation prediction + input STFT -&gt;  inverse STFT -&gt; prediction of latDeg&amp;lngDeg speeds</p></li>\n<li><p>this speed prediction was used for:</p>\n<ol>\n<li>Low speed mask;  The points of low speed area are replaced with its median.</li>\n<li>Speed disagreement mask: If the speed from position prediction and this speed prediction differ a lot, remove such points and interpolate.</li></ol></li>\n<li><p>prediction examples for the segmentation.  <br>\n<img src=\"https://user-images.githubusercontent.com/61892693/128625486-cf8abdfe-675f-475a-8c7f-375752cc81c5.png\" alt=\"conv_segmentation_result\"><br>\n<img src=\"https://user-images.githubusercontent.com/61892693/128625496-a0fd458f-16b3-445b-88d6-0be71378b588.png\" alt=\"conv_segmentation_result_2\"></p></li></ul></li></ul></li>\n</ul>\n<h2>LightGBM Part</h2>\n<ul>\n<li>Input: IMU data excluding magnetic filed feature<ul>\n<li>also excluding y acceleration and z gyro because of phone mounting condition</li>\n<li>adding moving average as additional features, <code>window_size=5, 15, 45</code></li></ul></li>\n<li>Predict latDeg&amp;lngDeg noise</li>\n</ul>\n<h2>Public Post Process Part</h2>\n<p>There are nice and effective PPs in public notebook. I used the following notebooks. Thanks to the all authors.</p>\n<ul>\n<li><a href=\"https://www.kaggle.com/t88take/gsdc-phones-mean-prediction\" target=\"_blank\">phone mean</a></li>\n<li><a href=\"https://www.kaggle.com/dehokanta/baseline-post-processing-by-outlier-correction\" target=\"_blank\">filtering outlier</a></li>\n<li><a href=\"https://www.kaggle.com/emaerthin/demonstration-of-the-kalman-filter\" target=\"_blank\">kalman filter</a></li>\n<li><a href=\"https://www.kaggle.com/bpetrb/adaptive-gauss-phone-mean\" target=\"_blank\">gauss smoothing&amp;phone mean</a></li>\n</ul>\n<h2>KNN at downtown Part</h2>\n<p>similar to <a href=\"https://www.kaggle.com/robikscube/indoor-navigation-snap-to-grid-post-processing\" target=\"_blank\">Snap to Grid</a>, but using both global and local feature. Local re-ranking comes from the  host baseline of <a href=\"https://www.kaggle.com/c/landmark-retrieval-2020\" target=\"_blank\">GLR2021</a></p>\n<ul>\n<li>Use train ground truth as database</li>\n<li>Global search: query(latDeg&amp;lngDeg) -&gt; find 10 candidates</li>\n<li>Local re-ranking: query(latDeg&amp;lngDeg speeds and its moving averages) -&gt; find 3 candidates -&gt; taking mean over candidates</li>\n</ul>\n<h2>scores</h2>\n<ul>\n<li>Check each idea with late submissions.</li>\n<li>actually conv position pred part implemented near deadline, before that I  used only the segmentation model for STFT image.</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th>status</th>\n<th>Host baseline + Public PP</th>\n<th>conv position pred</th>\n<th>gbm</th>\n<th>speed mask</th>\n<th>knn global</th>\n<th>knn local</th>\n<th>Private Board Score</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>my best submission</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>2.61693</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>5.423</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>3.61910</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>3.28516</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td></td>\n<td>3.19016</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td>2.81074</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td>2.66377</td>\n</tr>\n</tbody>\n</table>\n<h2>code</h2>\n<ul>\n<li>My code is available <a href=\"https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge\" target=\"_blank\">here</a></li>\n<li>My all pretrained weights have been uploaded at <a href=\"https://www.kaggle.com/sai11fkaneko/google-smartphone-decimeter-challenge-weights\" target=\"_blank\">kaggle dataset</a></li>\n<li>You can reproduce my result with the <a href=\"https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge#how-to-run\" target=\"_blank\">instruction</a></li>\n</ul>",
  "messages": [
    {
      "id": "1455132",
      "postDate": "08/06/2021 13:08:39",
      "content": "<p>Thanks to kaggle and organizers hosting a nice competition.</p>\n<h2>Overview</h2>\n<ul>\n<li>Predicting the Noise, <code>Noise = Ground Truth - Baseline</code>, like denoising in computer vision</li>\n<li>Using the speed <code>latDeg(t + dt) - latDeg(t)/dt</code>  as input  instead of the absolute position to prevent model from overfitting on the train dataset.</li>\n<li>Making 2D image input with Short Time Fourie Transform, STFT, and then using ImageNet convolutional neural network</li>\n</ul>\n<p><img src=\"https://user-images.githubusercontent.com/61892693/128517005-bad904b0-46e0-4af5-ae53-993e85b97de9.png\" alt=\"pipeline\"><br>\n<img src=\"https://user-images.githubusercontent.com/61892693/128673932-a1fb3b34-df4b-42f4-8485-890f9b35b8d4.png\" alt=\"best_vs_host_baseline\"></p>\n<h2>STFT and Conv Network Part</h2>\n<ul>\n<li>Input: Using <a href=\"https://librosa.org/doc/latest/index.html\" target=\"_blank\">librosa</a>,  generating STFT for both latDeg&amp;lngDeg speeds.<ul>\n<li>Each phone sequence are split into 256 seconds sequence then STFT with <code>n_tft=256</code>, <code>hop_length=1</code> and <code>win_length=16</code> , result in (256, 127, 2) feature for each degree. The following 2D images are generated  from 1D sequence.</li></ul></li>\n</ul>\n<p><img src=\"https://user-images.githubusercontent.com/61892693/128517031-3e2343f7-7a57-4ec9-bb3e-89c09c6542ba.png\" alt=\"stft_images\"></p>\n<ul>\n<li><p>Model: Regression and Segmentation</p>\n<ul>\n<li><p>Regression: EfficientNet B3, predict latDeg&amp;lngDeg noise, </p></li>\n<li><p>Segmentation: Unet ++ with EfficientNet encoder(<a href=\"https://github.com/qubvel/segmentation_models.pytorch\" target=\"_blank\">segmentation pyroch</a>) , predict stft  noise</p>\n<ul>\n<li><p>segmentation prediction + input STFT -&gt;  inverse STFT -&gt; prediction of latDeg&amp;lngDeg speeds</p></li>\n<li><p>this speed prediction was used for:</p>\n<ol>\n<li>Low speed mask;  The points of low speed area are replaced with its median.</li>\n<li>Speed disagreement mask: If the speed from position prediction and this speed prediction differ a lot, remove such points and interpolate.</li></ol></li>\n<li><p>prediction examples for the segmentation.  <br>\n<img src=\"https://user-images.githubusercontent.com/61892693/128625486-cf8abdfe-675f-475a-8c7f-375752cc81c5.png\" alt=\"conv_segmentation_result\"><br>\n<img src=\"https://user-images.githubusercontent.com/61892693/128625496-a0fd458f-16b3-445b-88d6-0be71378b588.png\" alt=\"conv_segmentation_result_2\"></p></li></ul></li></ul></li>\n</ul>\n<h2>LightGBM Part</h2>\n<ul>\n<li>Input: IMU data excluding magnetic filed feature<ul>\n<li>also excluding y acceleration and z gyro because of phone mounting condition</li>\n<li>adding moving average as additional features, <code>window_size=5, 15, 45</code></li></ul></li>\n<li>Predict latDeg&amp;lngDeg noise</li>\n</ul>\n<h2>Public Post Process Part</h2>\n<p>There are nice and effective PPs in public notebook. I used the following notebooks. Thanks to the all authors.</p>\n<ul>\n<li><a href=\"https://www.kaggle.com/t88take/gsdc-phones-mean-prediction\" target=\"_blank\">phone mean</a></li>\n<li><a href=\"https://www.kaggle.com/dehokanta/baseline-post-processing-by-outlier-correction\" target=\"_blank\">filtering outlier</a></li>\n<li><a href=\"https://www.kaggle.com/emaerthin/demonstration-of-the-kalman-filter\" target=\"_blank\">kalman filter</a></li>\n<li><a href=\"https://www.kaggle.com/bpetrb/adaptive-gauss-phone-mean\" target=\"_blank\">gauss smoothing&amp;phone mean</a></li>\n</ul>\n<h2>KNN at downtown Part</h2>\n<p>similar to <a href=\"https://www.kaggle.com/robikscube/indoor-navigation-snap-to-grid-post-processing\" target=\"_blank\">Snap to Grid</a>, but using both global and local feature. Local re-ranking comes from the  host baseline of <a href=\"https://www.kaggle.com/c/landmark-retrieval-2020\" target=\"_blank\">GLR2021</a></p>\n<ul>\n<li>Use train ground truth as database</li>\n<li>Global search: query(latDeg&amp;lngDeg) -&gt; find 10 candidates</li>\n<li>Local re-ranking: query(latDeg&amp;lngDeg speeds and its moving averages) -&gt; find 3 candidates -&gt; taking mean over candidates</li>\n</ul>\n<h2>scores</h2>\n<ul>\n<li>Check each idea with late submissions.</li>\n<li>actually conv position pred part implemented near deadline, before that I  used only the segmentation model for STFT image.</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th>status</th>\n<th>Host baseline + Public PP</th>\n<th>conv position pred</th>\n<th>gbm</th>\n<th>speed mask</th>\n<th>knn global</th>\n<th>knn local</th>\n<th>Private Board Score</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>my best submission</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>2.61693</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>5.423</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>3.61910</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>3.28516</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td></td>\n<td>3.19016</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td></td>\n<td>2.81074</td>\n</tr>\n<tr>\n<td>late sub</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td>✓</td>\n<td></td>\n<td>2.66377</td>\n</tr>\n</tbody>\n</table>\n<h2>code</h2>\n<ul>\n<li>My code is available <a href=\"https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge\" target=\"_blank\">here</a></li>\n<li>My all pretrained weights have been uploaded at <a href=\"https://www.kaggle.com/sai11fkaneko/google-smartphone-decimeter-challenge-weights\" target=\"_blank\">kaggle dataset</a></li>\n<li>You can reproduce my result with the <a href=\"https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge#how-to-run\" target=\"_blank\">instruction</a></li>\n</ul>",
      "rawMarkdown": "Thanks to kaggle and organizers hosting a nice competition.\n\n## Overview\n* Predicting the Noise, `Noise = Ground Truth - Baseline`, like denoising in computer vision\n* Using the speed `latDeg(t + dt) - latDeg(t)/dt`  as input  instead of the absolute position to prevent model from overfitting on the train dataset.\n* Making 2D image input with Short Time Fourie Transform, STFT, and then using ImageNet convolutional neural network\n\n![pipeline](https://user-images.githubusercontent.com/61892693/128517005-bad904b0-46e0-4af5-ae53-993e85b97de9.png)\n![best_vs_host_baseline](https://user-images.githubusercontent.com/61892693/128673932-a1fb3b34-df4b-42f4-8485-890f9b35b8d4.png)\n\n## STFT and Conv Network Part\n* Input: Using [librosa](https://librosa.org/doc/latest/index.html),  generating STFT for both latDeg&lngDeg speeds.\n    + Each phone sequence are split into 256 seconds sequence then STFT with `n_tft=256`, `hop_length=1` and `win_length=16` , result in (256, 127, 2) feature for each degree. The following 2D images are generated  from 1D sequence.\n\n![stft_images](https://user-images.githubusercontent.com/61892693/128517031-3e2343f7-7a57-4ec9-bb3e-89c09c6542ba.png)\n\n* Model: Regression and Segmentation\n    * Regression: EfficientNet B3, predict latDeg&lngDeg noise, \n    * Segmentation: Unet ++ with EfficientNet encoder([segmentation pyroch](https://github.com/qubvel/segmentation_models.pytorch)) , predict stft  noise\n        * segmentation prediction + input STFT ->  inverse STFT -> prediction of latDeg&lngDeg speeds\n\n        * this speed prediction was used for:\n            1. Low speed mask;  The points of low speed area are replaced with its median.\n            2. Speed disagreement mask: If the speed from position prediction and this speed prediction differ a lot, remove such points and interpolate.\n        * prediction examples for the segmentation.  \n       ![conv_segmentation_result](https://user-images.githubusercontent.com/61892693/128625486-cf8abdfe-675f-475a-8c7f-375752cc81c5.png)\n![conv_segmentation_result_2](https://user-images.githubusercontent.com/61892693/128625496-a0fd458f-16b3-445b-88d6-0be71378b588.png)\n\n## LightGBM Part\n  * Input: IMU data excluding magnetic filed feature\n      * also excluding y acceleration and z gyro because of phone mounting condition\n      * adding moving average as additional features, `window_size=5, 15, 45`\n  * Predict latDeg&lngDeg noise\n\n## Public Post Process Part\nThere are nice and effective PPs in public notebook. I used the following notebooks. Thanks to the all authors.\n* [phone mean](https://www.kaggle.com/t88take/gsdc-phones-mean-prediction)\n* [filtering outlier](https://www.kaggle.com/dehokanta/baseline-post-processing-by-outlier-correction)\n* [kalman filter](https://www.kaggle.com/emaerthin/demonstration-of-the-kalman-filter)\n* [gauss smoothing&phone mean](https://www.kaggle.com/bpetrb/adaptive-gauss-phone-mean)\n\n## KNN at downtown Part\nsimilar to [Snap to Grid](https://www.kaggle.com/robikscube/indoor-navigation-snap-to-grid-post-processing), but using both global and local feature. Local re-ranking comes from the  host baseline of [GLR2021](https://www.kaggle.com/c/landmark-retrieval-2020)\n* Use train ground truth as database\n* Global search: query(latDeg&lngDeg) -> find 10 candidates\n* Local re-ranking: query(latDeg&lngDeg speeds and its moving averages) -> find 3 candidates -> taking mean over candidates\n\n\n## scores\n* Check each idea with late submissions.\n* actually conv position pred part implemented near deadline, before that I  used only the segmentation model for STFT image.\n\n| status                   | Host baseline + Public PP | conv position pred | gbm | speed mask | knn global | knn local | Private Board Score |\n| ---                      | ---                       | ---                | --- | ---        | ---        | ---       | ---                 |\n| my best submission       | ✓                         | ✓                  | ✓   | ✓          | ✓          | ✓         | 2.61693             |\n| late sub                 |                           |                    |     |            |            |           | 5.423               |\n| late sub                 | ✓                         |                    |     |            |            |           | 3.61910             |\n| late sub                 | ✓                         | ✓                  |     |            |            |           | 3.28516             |\n| late sub                 | ✓                         | ✓                  | ✓   |            |            |           | 3.19016             |\n| late sub                 | ✓                         | ✓                  | ✓   | ✓          |            |           | 2.81074             |\n| late sub                 | ✓                         | ✓                  | ✓   | ✓          | ✓          |           | 2.66377             |\n\n\n## code\n* My code is available [here](https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge)\n* My all pretrained weights have been uploaded at [kaggle dataset](https://www.kaggle.com/sai11fkaneko/google-smartphone-decimeter-challenge-weights)\n* You can reproduce my result with the [instruction](https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge#how-to-run)",
      "votes": null
    },
    {
      "id": "1460640",
      "postDate": "08/09/2021 02:04:53",
      "content": "<p>I think it's very nice solution. Thanks for your sharing!</p>",
      "rawMarkdown": "I think it's very nice solution. Thanks for your sharing!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1460640,
      "author_name": "leewook",
      "author_url": "",
      "post_date": "08/09/2021 02:04:53",
      "content": "<p>I think it's very nice solution. Thanks for your sharing!</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1455132": "Thanks to kaggle and organizers hosting a nice competition.\n\n## Overview\n* Predicting the Noise, `Noise = Ground Truth - Baseline`, like denoising in computer vision\n* Using the speed `latDeg(t + dt) - latDeg(t)/dt`  as input  instead of the absolute position to prevent model from overfitting on the train dataset.\n* Making 2D image input with Short Time Fourie Transform, STFT, and then using ImageNet convolutional neural network\n\n![pipeline](https://user-images.githubusercontent.com/61892693/128517005-bad904b0-46e0-4af5-ae53-993e85b97de9.png)\n![best_vs_host_baseline](https://user-images.githubusercontent.com/61892693/128673932-a1fb3b34-df4b-42f4-8485-890f9b35b8d4.png)\n\n## STFT and Conv Network Part\n* Input: Using [librosa](https://librosa.org/doc/latest/index.html),  generating STFT for both latDeg&lngDeg speeds.\n    + Each phone sequence are split into 256 seconds sequence then STFT with `n_tft=256`, `hop_length=1` and `win_length=16` , result in (256, 127, 2) feature for each degree. The following 2D images are generated  from 1D sequence.\n\n![stft_images](https://user-images.githubusercontent.com/61892693/128517031-3e2343f7-7a57-4ec9-bb3e-89c09c6542ba.png)\n\n* Model: Regression and Segmentation\n    * Regression: EfficientNet B3, predict latDeg&lngDeg noise, \n    * Segmentation: Unet ++ with EfficientNet encoder([segmentation pyroch](https://github.com/qubvel/segmentation_models.pytorch)) , predict stft  noise\n        * segmentation prediction + input STFT ->  inverse STFT -> prediction of latDeg&lngDeg speeds\n\n        * this speed prediction was used for:\n            1. Low speed mask;  The points of low speed area are replaced with its median.\n            2. Speed disagreement mask: If the speed from position prediction and this speed prediction differ a lot, remove such points and interpolate.\n        * prediction examples for the segmentation.  \n       ![conv_segmentation_result](https://user-images.githubusercontent.com/61892693/128625486-cf8abdfe-675f-475a-8c7f-375752cc81c5.png)\n![conv_segmentation_result_2](https://user-images.githubusercontent.com/61892693/128625496-a0fd458f-16b3-445b-88d6-0be71378b588.png)\n\n## LightGBM Part\n  * Input: IMU data excluding magnetic filed feature\n      * also excluding y acceleration and z gyro because of phone mounting condition\n      * adding moving average as additional features, `window_size=5, 15, 45`\n  * Predict latDeg&lngDeg noise\n\n## Public Post Process Part\nThere are nice and effective PPs in public notebook. I used the following notebooks. Thanks to the all authors.\n* [phone mean](https://www.kaggle.com/t88take/gsdc-phones-mean-prediction)\n* [filtering outlier](https://www.kaggle.com/dehokanta/baseline-post-processing-by-outlier-correction)\n* [kalman filter](https://www.kaggle.com/emaerthin/demonstration-of-the-kalman-filter)\n* [gauss smoothing&phone mean](https://www.kaggle.com/bpetrb/adaptive-gauss-phone-mean)\n\n## KNN at downtown Part\nsimilar to [Snap to Grid](https://www.kaggle.com/robikscube/indoor-navigation-snap-to-grid-post-processing), but using both global and local feature. Local re-ranking comes from the  host baseline of [GLR2021](https://www.kaggle.com/c/landmark-retrieval-2020)\n* Use train ground truth as database\n* Global search: query(latDeg&lngDeg) -> find 10 candidates\n* Local re-ranking: query(latDeg&lngDeg speeds and its moving averages) -> find 3 candidates -> taking mean over candidates\n\n\n## scores\n* Check each idea with late submissions.\n* actually conv position pred part implemented near deadline, before that I  used only the segmentation model for STFT image.\n\n| status                   | Host baseline + Public PP | conv position pred | gbm | speed mask | knn global | knn local | Private Board Score |\n| ---                      | ---                       | ---                | --- | ---        | ---        | ---       | ---                 |\n| my best submission       | ✓                         | ✓                  | ✓   | ✓          | ✓          | ✓         | 2.61693             |\n| late sub                 |                           |                    |     |            |            |           | 5.423               |\n| late sub                 | ✓                         |                    |     |            |            |           | 3.61910             |\n| late sub                 | ✓                         | ✓                  |     |            |            |           | 3.28516             |\n| late sub                 | ✓                         | ✓                  | ✓   |            |            |           | 3.19016             |\n| late sub                 | ✓                         | ✓                  | ✓   | ✓          |            |           | 2.81074             |\n| late sub                 | ✓                         | ✓                  | ✓   | ✓          | ✓          |           | 2.66377             |\n\n\n## code\n* My code is available [here](https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge)\n* My all pretrained weights have been uploaded at [kaggle dataset](https://www.kaggle.com/sai11fkaneko/google-smartphone-decimeter-challenge-weights)\n* You can reproduce my result with the [instruction](https://github.com/Fkaneko/kaggle_Google_Smartphone_Decimeter_Challenge#how-to-run)",
    "1460640": "I think it's very nice solution. Thanks for your sharing!"
  },
  "source": "meta"
}