1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kaggle APIが動かない。Pytorchとfastaiで始めるディープラーニング9章でサンプルコードのエラーがでたのでまとめる。

Posted at

はじめに

今回は「Pytorchとfastaiではじめるディープラーニング」という本のデータセットの取得で普段とは違った方法でKaggle APIを利用したのですが、そこでエラーがでたり挙動が不安定だったためデータ取得の方法についてまとめました。

この本をやっている方でつまずく方が恐らくいると思ってます。参考になればうれしいです。

環境

  • Google Colab

問題

9章のデータセットの取得で以下のコードでエラーが発生しました。

09_tabular.ipynb
# hide
from fastbook import *
# ここでエラーがおきる
from kaggle import api
(省略)

発生したエラーは以下です。

OSError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.

kaggle.jsonがないです。と言われます。もちろんないので、本通りにコードを実行するのあればfrom kaggle impport apiを削除して、kaggle.jsonを追加してから実行します。

削除したコードを実行します。

09_tabuler.ipynb
# 2つ目のセル
# hide
from fastbook import *
from pandas.api.types import is_string_dtype, is_numeric_dtype, is_categorical_dtype
from fastai.tabular.all import *
from sklearn.ensemble import RandomForestRegressor
from sklearn.tree import DecisionTreeRegressor
from dtreeviz.trees import *
from IPython.display import Image, display_svg, SVG

pd.options.display.max_rows = 20
pd.options.display.max_columns = 8

続けて、以下のセルも実行します。

# 3つ目のセル
# kaggleに登録してAccountからAPIキー(kaggle.json)をダウンロードする
creds = 'kaggle.jsonの内容をここにはりつける'

# 4つ目のセル
cred_path = Path('~/.kaggle/kaggle.json').expanduser()
if not cred_path.exists():
    cred_path.parent.mkdir(exist_ok=True)
    cred_path.write_text(creds)
    cred_path.chmod(0o600)

# 5つ目のセル
path = URLs.path('bluebook')
path

# 6つ目のセル
# hide
Path.BASE_PATH = path

# 新たにセルを追加
from kaggle import api

そのあと、ダウンロードを行うため以下のセルを実行します。

if not path.exists():
    path.mkdir(parents=true)
    api.competition_download_cli('bluebook-for-bulldozers', path=path)
    file_extract(path/'bluebook-for-bulldozers.zip')

path.ls(file_type='text')

すると、ここでもエラーがでます。
今回は、このエラーの対処法を中心に記事にします。

解決方法

ここで発生するエラーを解決するには以下の操作が必要です。
本には記載がありませんでした。

1. Kaggleからコンペのサイトにアクセスする

こちらにアクセスします。
このデータセットが使われるコンペBlue Book for Bulldozersのページとなります。

そこから、Rulesに移動し、I Understand and Acceptをクリックすることで利用が可能になります。

bandicam 2021-06-28 19-46-19-029.jpg

クリックした後はこのようになります。

bandicam 2021-06-28 19-47-22-544.jpg

また、

if not path.exists():
    path.mkdir(parents=true)
    api.competition_download_cli('bluebook-for-bulldozers', path=path)
    file_extract(path/'bluebook-for-bulldozers.zip')

path.ls(file_type='text')

は1度ダウンロードに失敗するとキャッシュの影響でダウンロードができなくなるため、ランタイムの再起動を行う必要があります

すると、うまくダウンロードができるようになります。

さいごに

本を勉強していると、いつ本通りにできなくなるかひやひやします。
しかし、さすがオライリー。コードもすべてColabで用意されているので大体のものは本通りに動かせます。(本が間違っており動かないものもありますが、サンプルコードは動きます)

そのような中で動かないコードは珍しいですがなんとか動くようになってよかったです。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?