課題 1 の問題セットの内容はここにあり、課題の PDF もこのリポジトリに assign1.pdf として含まれています。
これはPython 2.7を使用します。 python q{1,2,3}_{problem}.py を使用して演習を実行します。基本的に、ファイルを Python インタープリターに渡すことでコードを実行します。
一部の機能にはテストがありますが、まだ不足している機能もあります。
q3_word2vec.py には健全性テストの恩恵を受けることができる大部分があると思います。
この割り当てには GPU を使用する利点があるため、AWS でスポット インスタンスをスピンアップする手順が記載されています。私は p2.8xlarge インスタンスを使用していますが、6 月 4 日現在、1 時間あたり 7.20 ドルです。スポット インスタンスを使用すると、これと同じインスタンス タイプを 1 時間あたり 1.3 ドルで実行できます。
スポットインスタンスのリクエストを行うには、 ./aws_setup/setup.sh
を実行します。現在、これは私のラップトップを想定しており、個人の AWS アカウント用にセットアップした AWS プロファイルを使用します。何かを変更する必要がありますが、私が使用している AWS AMI は自分のアカウントにあるので、おそらくこれではうまく伝わらないでしょう。現時点ではうまくいきません。
config.json は、AWS マネジメント コンソールを使用した最初のスポット インスタンス リクエストから保存されたファイルです。 aws_setup フォルダーに保存された config.json スクリプトと setup.sh スクリプトを使用すると、次回トレーニングを実行するときにインスタンスを再リクエストするのが非常に簡単になります。
インスタンスが起動すると、ホーム フォルダーに cs224 フォルダーが作成されます。 git pull origin master
と、最新のコードが得られます。 python q3_RNNLM.py
で実行
./aws_setup には、AWS スポット インスタンス インフラストラクチャを作成するためのサポート スクリプトが含まれています
source ./aws_setup/commands.sh には、実行するいくつかの基本的なコマンドが含まれています。環境describe
新しいスポット インスタンスsetup
インスタンスにlogin
。完了したら、インスタンスをterminate
。
N 個の複数のインスタンスを実行する場合、0 ~ N のインスタンス番号を指定して、どのインスタンスにログインするかを選択します。 ./aws_setup/login.sh 0
で最初のインスタンスにログインします
最良の実行は、p2.xlarge で 90 分間トレーニングされ、検証では 0.745 の精度がありました。
埋め込みサイズを最初の 35 から 2800 まで更新しても、結果の精度はほとんど変わりません。
l2 正則化は、良好な検証結果を得る上で非常に重要であるはずです。
トレーニング セットと検証セットの精度には依然として大きな差があり、トレーニング セットの精度は %92 を超えることがよくありました。
課題 3 の実行結果と個々の書き込みはすべて、assignment3/output および assign3/README.md にあります。