こんばんは!つきたんです!
Jupyterで書いたカーネルをGoogle Colaboratoryに移行したら調子良かったので記事書くことにしました。
Jupyterで書いたカーネルをGoogle Colaboratoryに移行しようとしたきっかけ
普段からJupyter使っていたんですけど、kaggleのコンペのCSVファイルを開くときにメモリ8Gだといっぱいいっぱいになることがありました。
ブラウザが応答なし状態になって、しばらくしてやっと結果が表示されるんですが、その間PCを使えなくなっちゃうので不便を感じたので、ぼちぼち対策せねば~というのがきっかけです。
対策としては
- PCのメモリを拡張する。
- 新しくPCを買う。笑
- PCを買って並列処理させる。笑
- クラウドサービスを使用する。
を考えたんですが、とりあえずお金も手間もかからないクラウドサービスを使うことにしました。
ネットで調べたら「Google Colaboratory」ってでてきたので、とりあえずこれでOK。
基本的な使い方
基本的な使い方を説明しましょう。
だいたいJupyterと一緒ですが呼び方が違ったりボタンの場所がちょいちょい違うのでメモ。
コードの追加方法
コードを追加する方法は下図の赤枠の中にある「+コード」っていうところをクリックします。
ランタイムの接続方法
コードの内容を実行するためにはランタイムを接続する必要があります。
ランタイムの接続は下図の赤枠の「再接続」をクリックし、「ホスト型ランタイムに接続」を選択します。
数秒~15秒くらいで接続完了すると思います。
RAMとディスクの使用量が表示されたら接続完了です。
GPUやTPUの切り替え
ランタイムのハードウェアアクセラレータはGPUやTPUを選択することができます。
メニューの「ランタイム」>「ランタイムのタイプを変更」から変更できます。
Google DriveにアップロードしたzipファイルをColaboratoryで解凍してCSVとして読み込む方法
トレーニングデータやテストデータはCSVファイルなどで読み込むのですが、Jupyterの場合とGoogle Colaboratoryとでやり方が違います。
Jupyterの場合はローカルドライブのパスを指定しますがGoogle Colaboratoryはクラウドサービスなのでローカルパスを指定することができません。
Google Driveにファイルをアップロードして使用するのが一番分かりやすくて手っ取り早い方法です。
Google Driveにzipファイルをアップロード
正確に言うとzipでなくともCSVファイルをそのままアップロードして読み込むことができます。
ですが、ギガバイト級のファイルをアップロードするとなると結構な時間がかかってしまい、Jupyterから乗り換えるメリットがあまり感じられません。
CSVをzip形式に圧縮するとサイズが小さくなるのでアップロードが短い時間ですむようになります。
また、圧縮することによってGoogle Driveの領域を圧迫せずに済むので、zip圧縮することをおすすめします。
CSVファイルzip形式に圧縮します。これはローカル環境で圧縮ソフトを使用して行います。
それをGoogle Driveにアップロードします。
※Google Driveはドラッグドロップでファイルをアップロードできます。
Google Driveをマウントする
Google ColaboratoryにGoogle Driveをマウントします。
「ドライブをマウント」を選択します。するとコード領域にマウントするためのコードが出現するので実行します。
実行すると「Go to this URL in a browser: https://…」というリンクが出現するのでクリックします。
認証画面で「許可」ボタンをクリックすると認証コードが表示されるのでコピーします。
「Enter your authorization code:」の四角の中にコピーした認証コードを入力します。Enterキーをポンッと押します。
「Mounted at /content/drive」というメッセージが表示されればマウント完了です。
zipファイルの解凍
Google Driveにアップロードしたzipファイルを解凍します。
下記のようにコードを入力して実行すればOKです。※パスは適宜変更してください。
1 |
!unzip "drive/My Drive/Colab Notebooks/ashrae-energy-prediction/weather_train.zip" |
ちなみに「!」を先頭につけるとlinuxコマンドが使えます。lsとかも使えるので、パスがわからない場合は参考にしてください。
あと、ネットで調べたら結構違うこと書いてあったのですが、今はこれがシンプルな書き方です。
zipの解凍がGoogle Colaboratoryに行われるのでGoogle Driveの領域を圧迫することはありません。
ネットでGoogle Drive上で解凍する方法を採用しているものがありましたが、適切ではありません。
下図を見てください。マウントしたGoogle Driveのディレクトリがファイル一覧に表示されています。
また、その下には「weather_train.csv」というファイルができています。これが今回解凍したファイルになります。
図の右側の赤枠は、実行したコマンドと実行結果です。
ファイルの読み込みは下記のようにpandasを使用して行います。これはJupyterでもおなじみですね。
1 2 |
weather_train = pd.read_csv('weather_train.csv') weather_train |
基本的な使い方はとりあえずこんな感じです。
コメント