GenCastをWSL2+VS Codeで動かしてみる
こんにちは、
Djangoの勉強を始めたつもりが
だいぶ脱線してしまいました。
ワニかず@40歳 出戻りエンジニアです。
何か作りたいものがないと
技術は身につかないという実感があるので、
何かを作ろうかと考えて、
天気に関することをやってみようと思い、
Googleが提供するGenCastをいじってみることにしました。
GenCastは、Google DeepMindが開発した気象予測のためのAIモデルで、
実験的な研究プロジェクトとして位置付けられており、
公式の気象機関による承認や保証はありませんが、
気象予測の研究や実験に活用できます。
ということで、今回は、
GenCastをWSL2+VS Codeで動かしてみる
という手順を少し細かめに解説いたします。
事前の設定
WSL2をインストールする
こちらの記事をご覧ください。
VSCodeとWSL2の連携
VS Codeに拡張機能「WSL」をインストールします。
VS Codeの拡張機能の画面で「Remote WSL」と入力、
表示された画面の「インストール」をクリックします。
↑私の画面はすでにインストール済みのため、
「アンインストール」が表示されています。
連携をすることで、
WSLのターミナルから「code .」で
VSCodeを起動できます
GraphCastとGenCastのモデルファイルをダウンロード
こちら
の「gsutil のインストール」を行った後、
wslのターミナルで、
gsutil -m cp -r \
"gs://dm_graphcast/LICENSE" \
"gs://dm_graphcast/dataset" \
"gs://dm_graphcast/gencast" \
"gs://dm_graphcast/graphcast" \
"gs://dm_graphcast/params" \
"gs://dm_graphcast/stats" \
.
を実行してモデルファイルをダウンロードします。
注意点としては、
140GBくらいありますので、
時間がかかります。
私の環境(1GBの光回線)
の場合でも2時間くらいかかりましたので
時間と心に余裕のある時に行うようにしましょう。
ちなみに私は、
寝ようと思っていた
1時間前にやり始めてしまい大変後悔しました(笑)
imagemagickをインストールする
wslのターミナルで
sudo apt install imagemagick
を実行して、imagemagickをインストールします。
私は、いろいろうまくいかずに、
sudo apt install python3-pip git imagemagick
と実行していますが、
もしかすると、上記のコマンドも
影響しているかもしれませんので、
うごかない場合はこちらもお試しください。
GenCast動作確認までの手順
- PowerShellを起動する
- PowerShellでwslと入力
- 「mkdir test3」で作業用のフォルダを作成する(test3の部分は何でもいいです)
- 「cd test3/」で作業用フォルダに移動
- git clone https://github.com/google-deepmind/graphcast.git
で、リポジトリをローカル環境に複製する。 - 「cd graphcast/」で複製したリポジトリのフォルダに移動。
- 「python3 -m venv myvenv3」で、仮想環境を作成する。今回は仮想環境を「myvenv3」として作っていますが、これは好きな名前でOKです。
ここまでの流れは以下の図です。
- 「source myvenv3/bin/activate」で、先ほど作った仮想環境を有効にする。
- 「pip install -e .」で動作に必要なパッケージをインストールする。
「pip install -e .」は終了までに、数分かかります。
私の環境では5分近くかかっていました。
インストールの設定は、先ほど、5.で複製したデータの中に、
「setup.py」が入っており、
このファイルの設定に従って設定がされているようです。
7.で行った、仮想環境を有効にしていない場合、
この処理は失敗すると思います。
そのため、仮想環境の作成と有効化は必要な作業となります。
- 「code .」でVS Codeを起動する。
起動すると、VS Codeで以下のように
「このフォルダー内のファイルの作成者を信頼しますか?」
と表示されますが、「はい、作成者を信頼します」
で先に進みます。
- クローンで作成した「gencast_demo_cloud_vm.ipynb」が私の環境だと正常に動きませんでした。代わりに、「gencast_demo_cloud_vm.py」を作成し、こちらでご紹介されているソースをコピー貼り付けします。
https://qiita.com/syun88/items/d3e352b2a87d82416f21#code
モデルとデータのパスは
「事前の設定」
で実行した
「GraphCastとGenCastのモデルファイルをダウンロード」
の実行パスによって異なると思いますので、
ソースコードの以下の部分は修正する必要があります。
私の環境では、以下のようになっています。
# モデルとデータのパス
MODEL_PATH = "../../gencast/params/GenCast 1p0deg Mini <2019.npz"
DATA_PATH = "../../gencast/dataset/source-era5_date-2019-03-29_res-1.0_levels-13_steps-04.nc"
STATS_DIR = "../../gencast/stats/"
- VS Codeで「Ctrl+Shift+P」でコマンドパレットを開き、7.で作成した「myvenv3」のインタプリターを有効にします。
仮想環境やインタプリターについて、
初心者の方が理解を深めたい場合は、
私が以前書いた、こちらの記事をご覧ください。
-
VS Codeでターミナルを起動し、「python3 gencast_demo_cloud_vm.py」を実行
-
しばらくすると、「example_animation.gif」が作成されると思います。
Discussion