【发布时间】:2020-07-09 19:53:30
【问题描述】:
在 Kaggle 中:无论内核类型或文件名如何,我如何将我的结果提交给 Kaggle 比赛?
如果我在 Kaggle 以外的笔记本(Colab、Jupyter、Paperspace 等)中?
【问题讨论】:
标签: google-colaboratory kaggle
在 Kaggle 中:无论内核类型或文件名如何,我如何将我的结果提交给 Kaggle 比赛?
如果我在 Kaggle 以外的笔记本(Colab、Jupyter、Paperspace 等)中?
【问题讨论】:
标签: google-colaboratory kaggle
我一直在寻找一种方法来做到这一点。特别是,能够在笔记本中的任何位置提交(以便您可以测试不同的方法)、具有任何名称的文件(以保持事物分开)和任意次数(尊重 Kaggle 限制)。
我发现很多网站解释了这个过程,比如
Making Submission
1. Hit the "Publish" button at the top of your notebook screen.
If you have written an output file, then you have an "Output" tab.
2. Output > Submit to Competition
但是他们没有明确内核必须是“脚本”类型而不是“笔记本”类型。
这有一些我尚未完全探索的限制。
我只是希望能够提交笔记本中的任何文件,就像其中的任何其他命令一样。
嗯,这是我想出的过程。
欢迎提出建议、错误、cmets、改进。具体来说,我想知道为什么这种方法并不比上述方法好。
流程:
问:我在哪里可以获得我的 kaggle 凭证?
答:您可以从 https://www.kaggle.com > 'Account' > "Create new API token" 获取它们
# Install required libraries
!pip install --upgrade pip
!pip install kaggle --upgrade
# Add your PRIVATE credentials
# Do not use "!export KAGGLE_USERNAME= ..." OR "" around your credential
%env KAGGLE_USERNAME=abc
%env KAGGLE_KEY=12341341
# Verify
!export -p | grep KAGGLE_USERNAME
!export -p | grep KAGGLE_KEY
请参阅下面的注意。
%mkdir --parents /root/.kaggle/
%cp /kaggle/input/<your_private_dataset>/kaggle.json /root/.kaggle/
!chmod 600 /root/.kaggle/kaggle.json
如何获取文件取决于您。
一个简单的方法是这样的:
这可能看起来有点麻烦,但迟早您的 API 凭据可能会更改,并且在某一点(数据集)更新文件会在您的所有笔记本中更新它。
这里<competition-name>是比赛的代号。您可以从比赛的 url 或比赛页面中的“我的提交”部分获取。
# Submit
!kaggle competitions submit -c <competition-name> -f submission.csv -m "Notes"
# example:
!kaggle competitions submit -c bike-sharing-demand -f submission.csv -m "Notes"
# View results
!kaggle competitions submissions -c <competition-name>
# example:
!kaggle competitions submissions -c bike-sharing-demand
注意: 如果您太在意您的凭据的安全性和/或想要共享内核,那么您可以在“Console”上而不是在笔记本中使用您的凭据键入 2 个命令(示例如下) .它们仅在该会话期间有效/可用。
import os
os.environ['KAGGLE_USERNAME'] = "here DO use double quotes"
os.environ['KAGGLE_KEY'] = "here DO use double quotes"
您可以在内核底部找到控制台。
PS:最初这是在here 发布的,但是当答案增加时,Kaggle 中的 Markdown 显示中断(而不是在其他地方),因此我不得不将其从 Kaggle 中取出。
【讨论】: