Отправка результатов на соревнования Kaggle из командной строки независимо от типа ядра или имени файла, в Kaggle или вне его - PullRequest
0 голосов
/ 29 марта 2020

В Kaggle: Как я могу представить свои результаты на соревнования Kaggle независимо от типа ядра или имени файла?

И если я нахожусь в блокноте за пределами Kaggle (Colab, Jupyter, Paperspace и др. c). )

1 Ответ

1 голос
/ 29 марта 2020

Введение (вы можете пропустить эту часть)

Я искал способ сделать это. В частности, возможность отправки в любой момент в блокноте (чтобы можно было протестировать различные подходы) файл с любым именем (чтобы разделить вещи) и любое количество раз (с учетом ограничений 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

Однако они не могут прояснить, что ядро ​​должно быть типа «Script», а не «Notebook».

Это имеет некоторые ограничения что я не до конца изучил.

Я просто хотел иметь возможность отправить любой файл из записной книжки, как и любую другую команду в нем.


Процесс

Хорошо, вот процесс, который я придумал.

Предложения, ошибки, комментарии, улучшения приветствуются. В частности, я хотел бы знать, почему этот метод не лучше описанного выше.

Процесс:

  1. Установка необходимых библиотек
  2. Предоставьте свои учетные данные kaggle
    • , используя файл kaggle. json ИЛИ
    • устанавливая некоторые переменные окружения с вашими учетными данными kaggle
  3. Отправьте с помощью простого команда.

В: Где я могу получить мои учетные данные kaggle?

A: Вы получаете их из https://www.kaggle.com> 'Учетная запись'> «Создать новый токен API»


1. Установите необходимые библиотеки

# Install required libraries
!pip install --upgrade pip
!pip install kaggle --upgrade

2. Укажите свои учетные данные kaggle - установите некоторые переменные среды с вашими учетными данными kaggle

# 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

См. Примечание ниже.


2. Укажите свои учетные данные kaggle - используя файл kaggle. json

%mkdir --parents /root/.kaggle/
%cp /kaggle/input/<your_private_dataset>/kaggle.json   /root/.kaggle/
!chmod 600 /root/.kaggle/kaggle.json

Как получить файл, зависит от вас.

Один простой способ заключается в следующем:

  1. Загрузите файл kaggle. json на свой компьютер
  2. В kaggle создайте личный набор данных (Your_Profile> Наборы данных> Новый Набор данных)
  3. Добавьте набор. json к этому набору данных
  4. Добавьте личный набор данных в свой блокнот (Данные> Добавить данные> Наборы данных> Ваши наборы данных)

Это может показаться немного громоздким, но рано или поздно ваши учетные данные API могут измениться, и обновление файла в одной точке (наборе данных) обновит его во всех ваших записных книжках.


3. Отправьте с помощью простой команды.

Здесь <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 

Примечание: Если вы слишком заботитесь о безопасности своих учетных данных и / или хотите поделиться ядром, то вы можете ввести 2 команды со своими учетными данными на « Console » вместо в блокноте (пример ниже). ). Они будут действительны / доступны только в течение этого сеанса.

import os
os.environ['KAGGLE_USERNAME'] = "here DO use double quotes"
os.environ['KAGGLE_KEY'] = "here DO use double quotes"

Консоль находится в нижней части ядра.


PS: Первоначально это было опубликовано здесь , но когда ответ увеличился, разрыв показа уценки в Kaggle (не в других местах), поэтому мне пришлось вынуть его из Kaggle.

...