tag:crieit.net,2005:https://crieit.net/tags/Kaggle/feed
「Kaggle」の記事 - Crieit
Crieitでタグ「Kaggle」に投稿された最近の記事
2021-10-12T12:42:08+09:00
https://crieit.net/tags/Kaggle/feed
tag:crieit.net,2005:PublicArticle/17704
2021-10-12T12:42:08+09:00
2021-10-12T12:42:08+09:00
https://crieit.net/posts/Docker-VSCode-Kaggle
ローカルでDocker+VSCodeを使ったKaggleの環境構築メモ
<p>以前「<a href="https://crieit.net/posts/Docker-Kaggle">Dockerを使ってKaggleの環境を構築する</a>」の手順で構築した環境にて<br />
VSCodeを使う方法がわからなかったので、新たに環境を作ってみた。<br />
手っ取り早く環境を構築したい場合は、上記記事の手順の方が手軽に試せるかも?</p>
<p>この記事の内容に沿って環境構築した:<br />
<a target="_blank" rel="nofollow noopener" href="https://qiita.com/Artela_0000/items/4b0f3c02b1e9e1b2695b">公式Dockerとvscodeを使ったKaggleの環境構築</a></p>
<h3 id="詰まった箇所"><a href="#%E8%A9%B0%E3%81%BE%E3%81%A3%E3%81%9F%E7%AE%87%E6%89%80">詰まった箇所</a></h3>
<ul>
<li>dockerのビルド時
<ul>
<li><code>--gpu</code> でエラー
<ul>
<li>macでは無理みたい</li>
</ul></li>
<li>ストレージ不足?でエラー
<ul>
<li><code>docker system prune</code> をしたら解決</li>
</ul></li>
<li>メモリ不足でエラー
<ul>
<li>dockerの設定でメモリを2GBから4GBにしたら解決</li>
<li>最低4GBは必要らしい (<a target="_blank" rel="nofollow noopener" href="https://github.com/facebook/prophet/issues/991">参考</a>)</li>
</ul></li>
</ul></li>
</ul>
<h3 id="備考"><a href="#%E5%82%99%E8%80%83">備考</a></h3>
<ul>
<li>mac OS(10.15.7)にて構築した</li>
<li><code>docker-python</code>フォルダ内に<code>.code-workspace</code>ファイルを作成しておくと便利かも</li>
</ul>
marshmallow444
tag:crieit.net,2005:PublicArticle/17611
2021-08-21T19:16:44+09:00
2021-10-12T12:44:36+09:00
https://crieit.net/posts/Docker-Kaggle
Dockerを使ってKaggleの環境を構築する
<p>10/12追記:<br />
VSCodeを使いたい場合は「<a href="https://crieit.net/posts/Docker-VSCode-Kaggle">ローカルでDocker+VSCodeを使ったKaggleの環境構築メモ</a>」の方法がおすすめ。<br />
本記事の方法は、上記記事より手軽に試したい場合におすすめ。</p>
<hr />
<p>「<a target="_blank" rel="nofollow noopener" href="https://qiita.com/bam6o0/items/354faa9394755a984661">爆速でKaggle環境を構築する</a>」の手順に従って、Docker初心者がmac OS上にKaggleのNotebookの実行環境を構築してみたメモ。</p>
<h2 id="環境構築手順"><a href="#%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%89%8B%E9%A0%86">環境構築手順</a></h2>
<ol>
<li>Dockerをインストールする</li>
<li>terminalにて、以下のコマンドを実行する<br />
<code>$ docker run --rm -it kaggle/python</code><br />
→これにより、Kaggle Python docker imageがPullされる</li>
</ol>
<h4 id="つまづいたところ"><a href="#%E3%81%A4%E3%81%BE%E3%81%A5%E3%81%84%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D">つまづいたところ</a></h4>
<ul>
<li>コマンド実行時に、以下のようなエラーが出て失敗した<br />
<code>Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?</code><br />
Dockerを起動してから実行することで、うまくいった<br />
<code>open /Applications/Docker.app</code></li>
</ul>
<h2 id="Notebookの実行方法"><a href="#Notebook%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%96%B9%E6%B3%95">Notebookの実行方法</a></h2>
<ol>
<li>以下のコマンドを実行する<br />
<code>docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root</code></li>
<li>いくつかURLが出力されるので、ブラウザでそのいずれかのURLへアクセスする</li>
<li><code>.ipynb</code>ファイルを開くと編集・実行できる</li>
</ol>
<h4 id="1.のコマンドを短くする方法"><a href="#1.%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E7%9F%AD%E3%81%8F%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95">1.のコマンドを短くする方法</a></h4>
<p><code>.bash_profile</code>へ、以下を追記する</p>
<pre><code>kaggle_jupyter() {
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
}
</code></pre>
<p>これにより、terminalで以下を実行するだけでよくなる</p>
<pre><code>$ kaggle_jupyter
</code></pre>
<h2 id="メモ"><a href="#%E3%83%A1%E3%83%A2">メモ</a></h2>
<ul>
<li>実行にかかった時間は、<a href="https://crieit.net/posts/Kaggle-Notebook">Dockerを使わずVSCodeで実行した時</a>に比べると1.25倍ほどかかった。それでもKaggleのKernel上で実行するより早い</li>
<li>いちいちローカルにライブラリをインストールする必要がないので、一度この方法で環境構築しておくと後が楽になりそう</li>
<li>コマンド内の<code>--rm</code>の意味:クリーンアップ
<ul>
<li>コンテナの終了時に、自動的にコンテナをクリーンアップし、ファイルシステムを削除する</li>
</ul></li>
<li>コマンド内の<code>-it</code>の意味:オプション<code>-i</code>と<code>-t</code>の指定
<ul>
<li><code>-i</code>(=<code>--interactive</code>):標準入力</li>
<li><code>-t</code>(=<code>--tty</code>):擬似端末</li>
</ul></li>
<li>Dockerのコンテナの中にログインするには、以下のコマンドを実行する<br />
<code>docker run -it (コンテナ名) bash</code></li>
<li>この方法はかなり多くの容量を要するので、クラウド上にこの環境を構築する手もある。もしmacの容量が足りなくなったら試してみるのもいいかも</li>
</ul>
<h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/bam6o0/items/354faa9394755a984661">爆速でKaggle環境を構築する</a></li>
<li><a target="_blank" rel="nofollow noopener" href="https://docs.docker.jp/engine/reference/run.html#clean-up-rm">Docker run リファレンス</a></li>
<li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/k_uchida_____/items/8ca31226bd6d10850791">docker run -it の「-it」とはなにか</a></li>
<li><a target="_blank" rel="nofollow noopener" href="https://www.task-notes.com/entry/20191013/1570961482">MacでDockerのインストールとチュートリアルまで</a></li>
<li><a target="_blank" rel="nofollow noopener" href="https://scitaku.hatenablog.com/entry/2019/06/09/005657">kaggleやろおぜ(環境構築編)</a></li>
</ul>
marshmallow444
tag:crieit.net,2005:PublicArticle/17610
2021-08-19T19:34:46+09:00
2021-08-19T19:34:46+09:00
https://crieit.net/posts/Kaggle-Notebook
KaggleのNotebookをローカルで編集する
<p>KaggleのKernel上でコードを動かしてみたら実行に時間がかかったので、ローカルで実行してみた。<br />
手順を忘れないようメモしておく。<br />
一旦ソースをダウンロードしてローカルで編集し、完成したらアップロードしてSave&Submitする、という流れ。</p>
<h2 id="環境構築"><a href="#%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89">環境構築</a></h2>
<p>mac OS(10.15.7) + VSCodeを使用している</p>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://azure.microsoft.com/ja-jp/products/visual-studio-code/">VSCode</a>と<a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter">jupyterのExtension</a>をインストールしておく</li>
<li>必要なライブラリをインストールしておく<br />
(参考:<a target="_blank" rel="nofollow noopener" href="https://qiita.com/m__k/items/5f905cf5d20e875961b5">LightGBMをインストール</a>)</li>
</ul>
<h2 id="ローカルでの実行手順"><a href="#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E3%81%AE%E5%AE%9F%E8%A1%8C%E6%89%8B%E9%A0%86">ローカルでの実行手順</a></h2>
<ul>
<li>Kaggleから、編集したいNotebookをダウンロードする
<ul>
<li>Notebookの左上<code>File</code>メニュー→<code>Download notebook</code>を選択</li>
</ul></li>
<li>(Competitionページの<code>Data</code>タブから、必要なデータもダウンロードしておく)</li>
<li>ダウンロードした<code>.ipynb</code>ファイルをVSCodeで開き、編集・実行する</li>
</ul>
<h2 id="ソースのアップロード手順"><a href="#%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E6%89%8B%E9%A0%86">ソースのアップロード手順</a></h2>
<ul>
<li>新規Notebookを作成する
<ul>
<li>既存のNotebookへ上書きする場合は、そのNotebookを開く</li>
</ul></li>
<li>左上<code>File</code>メニュー→<code>Upload Notebook</code>を選択
<ul>
<li>Uploadすると、Notebookの内容は全て上書きされてしまうので要注意</li>
</ul></li>
</ul>
<p>アップロード後は、通常通りSaveとSubmitを行う。</p>
<h2 id="備考"><a href="#%E5%82%99%E8%80%83">備考</a></h2>
<ul>
<li><a target="_blank" rel="nofollow noopener" href="https://www.currypurin.com/entry/2019/06/10/120225">ローカルのjupyterかkaggleのKernelかを判定する方法</a>を使うと、環境によって処理を変えられる</li>
<li>ローカルで動かすのにかかった時間は、Kaggle Kernel上で動かした時の半分程度になった
<ul>
<li>まだ一つのソースしか動かしていないので、他のソースでも同様の速度になるのかは不明</li>
</ul></li>
</ul>
marshmallow444