作業ディレクトリは全て本README.md
と同一階層である前提で書いています。
cargo test
cargo run --release [タスク名]
の形式になっています。以下に各タスク名を記載します。
task_01
$h_G$を計算します。計算するグラフはsrc/main.rs
内task_01()
で定義されています。
task_02
固定されたグラフ(task_02()
内で定義)を学習します。
いずれも2000のデータのうち1600を学習,400を検定に使っています。
task_03_sgd
SGDでdatasets/train/
内のデータを学習します。task_03_msgd
Momentum 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の主要な操作はこの中で定義しています。
更新アルゴリズムのみ別ファイルで定義してします。
更新アルゴリズムは全てこのトレイトを実装しています。