作業ディレクトリは全て本README.mdと同一階層である前提で書いています。
cargo testcargo run --release [タスク名]
の形式になっています。以下に各タスク名を記載します。
task_01$h_G$を計算します。計算するグラフはsrc/main.rs内task_01()で定義されています。
task_02固定されたグラフ(task_02()内で定義)を学習します。
いずれも2000のデータのうち1600を学習,400を検定に使っています。
task_03_sgdSGDでdatasets/train/内のデータを学習します。task_03_msgdMomentum SGDでdatasets/train/内のデータを学習します。
Adamによるパラメータ更新を実装しました。ハイパーパラメータは論文の推奨値に従っています。
task_04課題3と同様にtrainを1600/400に分けて更新アルゴリズムをテストするためのタスクです。task_04_testすべてのtrainデータを使って学習した後,datasets/test/内のグラフを分類し,標準出力に書き出します。
cargo run --release task_04_test | tee output_raw.txt
tail -n +102 output_raw.txt > prediction.txt実行起点です。簡単なユニットテストもこのファイル内に書いてあります。
GNNの主要な操作はこの中で定義しています。
更新アルゴリズムのみ別ファイルで定義してします。
更新アルゴリズムは全てこのトレイトを実装しています。