[PYTHON] Verwenden Sie die Kaggle-API in einem Docker-Container

Dinge die zu tun sind

Erste Zusammenfassung

  1. DL kaggle.json (kaggle.com> Mein Konto> Schaltfläche Neues API-Token erstellen)
  2. $ docker run -it --rm --mount type=bind,src=pwd,dst=/root/dev kaggle/python
  3. $ pip install kaggle
  4. $ mkdir ~/.kaggle
  5. $ cp /root/dev/kaggle.json ~/.kaggle
  6. $ chmod 600 ~/.kaggle/kaggle.json
  7. $ kaggle competitions download -c titanic -p input/titanic
  8. $ unzip input/titanic/titanic.zip input/titanic
  9. $ kaggle kernels pull arthurtok/introduction-to-ensembling-stacking-in-python -p ./

Ich lade den Datensatz vom Titanic-Wettbewerb herunter Wenn Sie kein Problem haben, können Sie es hier schließen: entspannt:

Umgebung

macOS 10.14.6 (Mojave) Docker 19.03.4

Warum Docker verwenden?

--Notizbuch instabil

Was ist die Kaggle-API?

Ein Typ, der die Operationen auf Kaggles Website über die Befehlszeile ausführen kann

Zum Beispiel?

--Dataset herunterladen --Einreichen

etc…

Weitere Informationen finden Sie unter Offizielles Repository.

Befehlsliste


kaggle competitions {list, files, download, submit, submissions, leaderboard}
kaggle datasets {list, files, download, create, version, init}
kaggle kernels {list, init, push, pull, output, status}
kaggle config {view, set, unset}

Ich werde eine solche Konfiguration vornehmen

kaggle_titanic
├── input
│    └── titanic  <-Gewinnen Sie, wenn Sie die CSV-Datei hier herunterladen können
└── working  <-Gewinnen Sie, wenn Sie die ipynb-Datei hier herunterladen können

Holen Sie sich das Kaggle API Token

Von Mein Konto oben rechts スクリーンショット 2019-11-27 9.25.02.png

Das ist in der Mitte スクリーンショット 2019-11-27 9.28.42.png

kaggle.json wird heruntergeladen, also speichern Sie es im Verzeichnis kaggle_titanic. Der Inhalt ist so

kaggle.json


{"username":"anata_no_namae","key":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

Apropos

Sie können das Token hier ungültig machen Wenn Sie so etwas wie "Ich habe versehentlich kaggle.json auf GitHub gedrückt!" Drücken. スクリーンショット 2019-11-27 9.41.17.png

Container-Start

Offizielles Bild von Kaggle Verwenden Sie kaggle / python Der folgende Befehl im Verzeichnis kaggle_titanic

docker run -it --rm --mount type=bind,src=`pwd`,dst=/root/dev kaggle/python

Die Erklärung der Option finden Sie hier, wenn Sie möchten -> [[Erklärung mit Bild] Erstellen Sie eine Anaconda-Umgebung mit Docker und verwenden Sie VS-Code im Container](https://qiita.com/komiya_____/items/96c14485eb035701e218#%E3%82%B3%E3%83%B3 % E3% 83% 86% E3% 83% 8A% E8% B5% B7% E5% 8B% 95)

Ab hier die Schale auf der Containerseite

Wechseln Sie in das bereitgestellte Verzeichnis

cd /root/dev

OK, wenn der Inhalt synchronisiert ist

ls

input  kaggle.json  working

Installieren Sie das Kaggle-Paket

pip install kaggle

Überprüfen Sie die Version, um festzustellen, ob sie funktioniert

kaggle -v

Traceback (most recent call last):
  File "/opt/conda/bin/kaggle", line 7, in <module>
    from kaggle.cli import main
  File "/opt/conda/lib/python3.6/site-packages/kaggle/__init__.py", line 23, in <module>
    api.authenticate()
  File "/opt/conda/lib/python3.6/site-packages/kaggle/api/kaggle_api_extended.py", line 149, in authenticate
    self.config_file, self.config_dir))
OSError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.

Ich bin so wütend Sie sagen, so etwas wie kaggle.json kann nicht gefunden werden

Platziere kaggle.json

Erstellen Sie ein ~ / .kaggle / Verzeichnis und kopieren Sie kaggle.json hinein ** * Das Verzeichnis ~ / .kaggle / wurde möglicherweise zum Zeitpunkt von $ kaggle -v erstellt, aber dies ist kein Problem **

mkdir ~/.kaggle # <-Möglicherweise wird Ihnen mitgeteilt, dass Sie bereits ein Verzeichnis haben, aber machen Sie sich keine Sorgen
cp /root/dev/kaggle.json ~/.kaggle

diesmal

kaggle -v

Warning: Your Kaggle API key is readable by other users on this system! To fix this, you can run 'chmod 600 /root/.kaggle/kaggle.json'
Kaggle API 1.5.6

Ich kann es benutzen, aber ich bin immer noch wütend Andere Benutzer können den API-Schlüssel lesen. Ändern Sie daher die Berechtigung

Berechtigungsänderung

chmod 600 ~/.kaggle/kaggle.json 

Folgen was ist

kaggle -v
Kaggle API 1.5.6

Huh

Es ist ärgerlich, es jedes Mal zu tun

Die Verarbeitungsreihe kann hier gemeinsam in der Zelle ausgeführt werden Es gibt auch eine Strategie, um daraus eine Datei zu machen und sie wiederzuverwenden

kaggle_settings.ipynb


!pip install kaggle
!mkdir ~/.kaggle
!cp /root/dev/kaggle.json ~/.kaggle
!chmod 600 ~/.kaggle/kaggle.json

Laden wir die Daten herunter

Geben Sie den Wettbewerbsnamen mit "-c" an -p Geben Sie den Speicherzielpfad an

kaggle competitions download -c titanic -p input/titanic
ls input/titanic

titanic.zip

titanic.zip wurde heruntergeladen

Verwenden Sie die Notation auf der URL für den Wettbewerbsnamen

Zum Beispiel im Wettbewerb "Severstal: Steel Defect Detection" スクリーンショット 2019-11-27 16.38.51.png

Auftauen

Entpacke die heruntergeladene titanic.zip

unzip input/titanic/titanic.zip -d input/titanic
ls input/titanic

gender_submission.csv  test.csv  titanic.zip  train.csv

Es gibt 3 Elemente: "gender_submission.csv", "test.csv" und "train.csv". Jetzt können Sie den Datensatz herunterladen

Versuchen Sie als nächstes, das Notebook zu ziehen

Notation des Notebooks ist hier スクリーンショット 2019-11-27 16.41.52.png

kaggle kernels pull arthurtok/introduction-to-ensembling-stacking-in-python -p ./working
ls ./working

introduction-to-ensembling-stacking-in-python.ipynb

Gewinner, weil es richtig gezogen wird

Es kann zweckmäßig sein, VS-Code zusammen zu verwenden

Es ist gut, Code mit Intelligenz oder eigener Schlüsselbindung schreiben zu können

[Erklärung mit Bild] Erstellen Sie eine Anaconda-Umgebung mit Docker und verwenden Sie VS-Code im Container

[Erklärung mit Bild] Konvertieren Sie VS-Code in Jupyter

Für diejenigen, die Jupyter verwenden möchten

Option -p 8888: 8888 beim Starten des Containers hinzugefügt (Host- und Containerseiten-Ports zuordnen)

docker run -p 8888:8888 -it --rm --mount type=bind,src=`pwd`,dst=/root/dev kaggle/python

Und starten Sie jupyter wie folgt. * Die Erläuterung der Optionen ist [hier](https://qiita.com/komiya_____/items/96c14485eb035701e218#dockerfile).
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token=''

Öffnen Sie localhost: 8888 in der Adressleiste Ihres Browsers und es ist OK

Das Ende

Vielen Dank für das Lesen bis zum Ende

Recommended Posts

Verwenden Sie die Kaggle-API in einem Docker-Container
Bis Sie die Kaggle-API mit Colab verwenden
Tragen Sie einen Docker-Container
Probieren Sie den interaktiven Python-Modus in einem Docker-Container aus
Flutter in Docker - Erstellen und Verwenden einer Flutter-Entwicklungsumgebung in einem Docker-Container
Führen Sie Matplotlib auf einem Docker-Container aus
Verwenden Sie die Flickr-API von Python
So löschen Sie einen Docker-Container
Ich habe einen Docker-Container erstellt, um JUMAN ++, KNP, Python (für pyKNP) zu verwenden.
Greifen Sie mit Requests auf die Docker Remote API zu
Klasse, die die API von DMM trifft
Führen Sie Python-Dateien in einem Docker-Container auf einem Remote-Raspbian über PyCharm aus
[Blender] Verwenden Sie OpenGL aus dem Skript heraus
Führen Sie matplotlib in einem Windows Docker-Container aus
Verwenden Sie WebDAV in einer Portable Docker-Umgebung
Ermitteln Sie mithilfe der Twitter-API die Anzahl der Tweets, die sich auf ein bestimmtes Keyword beziehen
Erstellt einen Python-Wrapper für die Qiita-API
Verwenden Sie den neuesten Pip in einer virtuellen Umgebung
Lassen Sie uns Wiki-Informationen mithilfe der MediaWiki-API abrufen
Verwendung der Google Cloud Translation API
Geben Sie in stdin den laufenden Docker-Container ein
Verwenden Sie das elektronische Papiermodul als Aufgabenliste
Verwenden Sie Python im Docker-Container als Pycharm-Interpreter
Verwenden Sie den Docker-Entwicklungscontainer bequem mit VS Code
Verwenden Sie die JIRA-API
[Django] Verwenden Sie VS Code + Remote-Container, um schnell eine Entwicklungsumgebung für Django-Container (Docker) zu erstellen.
Verwenden Sie die Twitter-API, um die von Twitter benötigte Zeit zu verkürzen (erstellen Sie eine Hervorhebungszeitleiste).
Verwenden wir die API des allgemeinen Fensters für Regierungsstatistiken (e-Stat).
Verwenden wir die Python-Version des Confluence-API-Moduls.
Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API
Starten Sie Django auf einem Docker-Container mit Docker-Compose Up
So veröffentlichen Sie ein Ticket über die Shogun-API
Erstellen Sie einen Docker-Container und speichern Sie PNG vor Altair
[Python] Verwenden Sie die Face-API von Microsoft Cognitive Services
Schauen Sie sich das Kaggle / Titanic-Tutorial genauer an
Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung