implememt cli
This commit is contained in:
48
experiments/config.yaml
Normal file
48
experiments/config.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# lightning.pytorch==2.5.5
|
||||||
|
seed_everything: true
|
||||||
|
trainer:
|
||||||
|
accelerator: gpu
|
||||||
|
strategy: auto
|
||||||
|
devices: 1
|
||||||
|
num_nodes: 1
|
||||||
|
precision: null
|
||||||
|
logger: null
|
||||||
|
callbacks:
|
||||||
|
- class_path: lightning.pytorch.callbacks.ModelCheckpoint
|
||||||
|
init_args:
|
||||||
|
monitor: val/loss
|
||||||
|
mode: min
|
||||||
|
save_top_k: 1
|
||||||
|
filename: best-checkpoint
|
||||||
|
max_epochs: 50
|
||||||
|
min_epochs: null
|
||||||
|
max_steps: -1
|
||||||
|
min_steps: null
|
||||||
|
overfit_batches: 0.0
|
||||||
|
log_every_n_steps: null
|
||||||
|
inference_mode: true
|
||||||
|
default_root_dir: null
|
||||||
|
model:
|
||||||
|
class_path: ThermalSolver.module.GraphSolver
|
||||||
|
init_args:
|
||||||
|
model_class_path: ThermalSolver.model.local_gno.GatingGNO
|
||||||
|
model_init_args:
|
||||||
|
x_ch_node: 1
|
||||||
|
f_ch_node: 1
|
||||||
|
hidden: 16
|
||||||
|
layers: 2
|
||||||
|
edge_ch: 3
|
||||||
|
out_ch: 1
|
||||||
|
unrolling_steps: 10
|
||||||
|
data:
|
||||||
|
class_path: ThermalSolver.data_module.GraphDataModule
|
||||||
|
init_args:
|
||||||
|
hf_repo: "SISSAmathLab/thermal-conduction"
|
||||||
|
split_name: "2000"
|
||||||
|
batch_size: 6
|
||||||
|
train_size: 0.8
|
||||||
|
test_size: 0.1
|
||||||
|
test_size: 0.1
|
||||||
|
optimizer: null
|
||||||
|
lr_scheduler: null
|
||||||
|
ckpt_path: null
|
||||||
34
run.py
34
run.py
@@ -1,38 +1,12 @@
|
|||||||
import torch
|
import torch
|
||||||
from lightning import Trainer
|
from lightning.pytorch.cli import LightningCLI
|
||||||
from ThermalSolver.module import GraphSolver
|
|
||||||
from ThermalSolver.data_module import GraphDataModule
|
torch.set_float32_matmul_precision("medium")
|
||||||
from ThermalSolver.model.local_gno import GatingGNO
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
trainer = Trainer(
|
LightningCLI(subclass_mode_data=True, subclass_mode_model=True)
|
||||||
max_epochs=50, accelerator="cuda", devices=1, accumulate_grad_batches=3
|
|
||||||
)
|
|
||||||
data_module = GraphDataModule(
|
|
||||||
hf_repo="SISSAmathLab/thermal-conduction",
|
|
||||||
split_name="2000",
|
|
||||||
train_size=0.8,
|
|
||||||
val_size=0.1,
|
|
||||||
test_size=0.1,
|
|
||||||
batch_size=10,
|
|
||||||
)
|
|
||||||
data_module.prepare_data()
|
|
||||||
data_module.setup("fit")
|
|
||||||
model = GatingGNO(
|
|
||||||
x_ch_node=1, f_ch_node=1, hidden=16, layers=2, edge_ch=3, out_ch=1
|
|
||||||
)
|
|
||||||
solver = GraphSolver(model, unrolling_steps=64)
|
|
||||||
|
|
||||||
trainer.fit(
|
|
||||||
solver,
|
|
||||||
train_dataloaders=data_module.train_dataloader(),
|
|
||||||
val_dataloaders=data_module.val_dataloader(),
|
|
||||||
)
|
|
||||||
data_module.setup("test")
|
|
||||||
trainer.test(solver, dataloaders=data_module.test_dataloader())
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
torch.set_float32_matmul_precision("medium")
|
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user