-
Notifications
You must be signed in to change notification settings - Fork 0
Experiments
humanbeans893 edited this page Jul 16, 2026
·
1 revision
exp/ は試行錯誤を時系列で保存する場所です。1 実験を NNN_<slug>/ という 1 ディレクトリに閉じ込めます。
既存の最大番号に 1 を足し、英語の短いスラッグを付けます。
cp -r exp/_template exp/001_baseline_fit各実験には次を置きます。
| 項目 | 役割 | Git |
|---|---|---|
README.md |
目的、方法、結果、考察、次の判断 | コミットする |
params.py |
シード、閾値、モデル設定など | コミットする |
run.py |
実行入口。共有処理は src/ から呼ぶ |
コミットする |
out/ |
図、ログ、中間出力 | コミットしない |
run.py 冒頭の sys.path ブートストラップは、プロジェクトをパッケージとしてインストールせず config と src を import するために必要です。
docker compose exec research-template uv run python exp/001_baseline_fit/run.py実行前に入力の存在、列、型、単位、件数などを明示的に検証します。必要な入力がないときにダミー値で続行したり、例外を握りつぶしたりしないでください。
- 目的: 何を検証するか
- 方法: データ、前処理、モデル、パラメータ、比較条件
- 結果: 主要な数値、図、成功/失敗
- 考察: 解釈、限界、想定外の点
- 次の判断: 採用、棄却、追加実験、共有コード化
意味のある実行ごとに追記し、都合の悪い結果を消さないようにします。
条件や方法を変えて新しい結果を出す場合は、新しい番号を作ります。過去の run.py や params.py を変更すると、README に残した結果を再生成できなくなります。README の追記や誤字修正は構いません。
- 2 つ以上の実験で必要なロジックは
src/に移し、テストを追加する。 - 論文で使う図表は手でコピーせず、実験の最終処理または
scripts/からresult/に生成する。 -
exp/*/out/は一時的・局所的な結果、result/は研究全体で採用した生成物として区別する。
- 入力データとバージョンを特定できるか
- 乱数シードと全パラメータがコードにあるか
- 実行コマンドが書かれているか
- 出力が
out/に閉じているか - 結果と結論を混同していないか
- 次の実験が過去の実験を上書きしていないか