建物AIのモデル作成のための基本のコードです。
- uvを使うためにgpu2の環境変数を適用する。
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
- uv環境の作成
cd ~/dx_basic
uv sync
- uv環境に入る
source .venv/bin/activate
ここの部分は.bashrcとかのエイリアスで高速化できる。
例 ~/.bashrcに以下を書き込んでsource ~/.bashrcすることでdx_basicで仮想環境に入ることができる。
alias dx_basic="source $HOME/dx_basic/.venv/bin/activate"
仮想環境から抜けるのはexitで
これから環境に入る時はdx_basicで
cd /mnt/data-raid/{username}/dx/
mkdir data result
cd /home/{username}/dx_basic/
ln -s /mnt/data-raid/{username}/dx/data data
ln -s /mnt/data-raid/{username}/dx/result result
dataset0aなどのdatasetディレクトリは/mnt/data-raid/{username}/dx/data/の下に置く
/home/{ユーザ名}/dx_basic/config/config.tomlにパラメータを保存する。
[model]
net = "vgg19_bn"
pretrained = true
transfer = false
[training]
lr = 0.001
momentum = 0.9
num_epochs = 5
batch_size = 10
[device]
nvidia = 0
[data]
num_val = 8
which_data = "dataset0"
train_data = "train"
test_data = "test"
{project_root}/result/[datasetの名前]/[保存日時とパラメータのセット名]/に保存される history.csv の内容:
| 列番号 | 説明 |
|---|---|
| 0 | 世代 |
| 1 | 訓練データの損失 (avg_train_loss) |
| 2 | 訓練データの精度 (train_acc) |
| 3 | 検証データの損失 (avg_val_loss) |
| 4 | 検証データの4ミス精度 (val_acc[0]) e.g., True: 0000 → Predicted: 1111 |
| 5 | 検証データの3ミス精度 (val_acc[1]) e.g., True: 0000 → Predicted: 1110 |
| 6 | 検証データの2ミス精度 (val_acc[2]) e.g., True: 0000 → Predicted: 1100 |
| 7 | 検証データの1ミス精度 (val_acc[3]) e.g., True: 0000 → Predicted: 1000 |
| 8 | 検証データの0ミス精度 (val_acc[4]) e.g., True: 0000 → Predicted: 0000 |
| 9 | 訓練データのバランス精度 (balanced_acc_dict["train_BA"]) |
| 10 | 検証データのバランス精度 (balanced_acc_dict["test_BA"]) |
- main.py
- data/とconfig/config.tomlを参照して学習を行う
- 結果は
result/[datasetの名前]/[main.pyを実行した時刻とconfig/config.tomlに基づくディレクトリ名]/に保存 - 例えば、
result/dataset0a/2024-11-21_07-45-22_resnet50-0.001-0.9-25-10/に保存
# 通常の実行
python main.py
# バックグラウンド実行
nohup python main.py &
nohup.outに出力される。
-
config/
- config.tomlで学習パラメータを設定
-
mylib/
-
main.pyに使う自作モジュールを格納
-
evaluate.py
- history変数より、(x:epoch、y:損失)、(x:epoch、y:精度)という2つのグラフを可視化
-
fit.py
- モデル学習部分
-
make_confusion_matrix.py
- 混同行列を作成
-
save_history_to_csv.py
- history.csvを作成
-
torch_seed.py
- seed値を定める
-