卒業研究の実験のために書いたソースコードを改修したものです。
全てのコードを1から書きました。
(自動生成されるコードであるcython_wl_kernel.cppを除く)
論文Neural Architecture Search using Bayesian Optimisation with Weisfeiler-Lehman Kernelをベースとしています。
ベイズ最適化およびガウス過程回帰をPyTorchを用いて独自実装しています。
卒業研究の際に書いたコードはこちら
- CentOS 7.9-2009
- Python 3.10.7
- GCC 4.8.5
- torch
- Cython
- numpy
- matplotlib
- yaml
- requests
- nats_bench
- tqdm
ファイル名 | 内容 |
---|---|
nasbowl.py | メインプログラム |
GPWithWLKernel.py | 実験の本体(ガウス過程回帰) |
NATSBenchCell.py | NATS-Benchのニューラルネットワークに対応するクラス |
NATSBenchWrapper.py | NATS-Benchのラッパー |
NATSBenchSearchSpace.py | NATS-Benchの探索空間 |
CachedKernel.py | カーネルの計算結果をキャッシュする |
util.py | 共通で用いる関数 |
Timer.py | 実行時間を計測するタイマー |
cython_setup.py | CythonのコードとC++実装のWLカーネルをPython向けにコンパイルする |
cython_wl_kernel.cpp | Cythonによって自動生成されたWLカーネルのC++プログラム |
cython_wl_kernel.pyx | WLカーネルをCython経由でPythonから呼び出せるようにする |
CythonWLKernel.py | WLカーネルをCython経由でPythonから呼び出す |
wl_kernel_impl.cpp | WLカーネルのC++実装 |
wl_kernel_impl.hpp | wl_kernel_impl.cppに対応するヘッダファイル |
Config.py | 実験のパラメータ |
test.py | WLカーネルの実行時間テスト用 |
submit.py | Slurmにジョブを投入 |
Log.py | プログラムの実行結果解析 |
show_commands.py | 過去に実行したプログラムの入力コマンドを一覧表示 |
show_execution_time.py | 過去に実行したプログラムの実行時間を一覧表示 |
visualize.py | 過去に実行したプログラムの実行結果を可視化 |
check_errors.py | プログラムの実行結果に対しエラーが無いかチェック |
python3 nasbowl.py acc -T 1500
python3 nasbowl.py srcc -T 1500
python3 nasbowl.py time -T 1500