Skip to content

Latest commit

 

History

History
62 lines (52 loc) · 3.11 KB

README.md

File metadata and controls

62 lines (52 loc) · 3.11 KB

nasbowlb

卒業研究の実験のために書いたソースコードを改修したものです。
全てのコードを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