modified: .gitignore deleted: Figure_1.png deleted: checkpoints/forward/best_tcn_model.pt deleted: checkpoints/forward/training_history.csv deleted: checkpoints_mlp/task1_feature_mlp/best_feature_mlp.pt deleted: checkpoints_mlp/task1_feature_mlp/training_history.csv deleted: checkpoints_rms/forward_rms/best_rms_model.pt deleted: checkpoints_rms/forward_rms/training_history.csv deleted: checkpoints_tree/task1_tr_tree/best_tr_tree.pkl deleted: checkpoints_tree/task1_tr_tree/model_selection.csv deleted: evaluation_outputs/forward/evaluation_forward_test_b0_s0.png deleted: evaluation_outputs/forward/evaluation_forward_val_b0_s0.png deleted: evaluation_outputs/forward/evaluation_forward_val_b3_s0.png deleted: evaluation_outputs/forward_rms/evaluation_test_all_samples.csv deleted: evaluation_outputs/forward_rms/evaluation_test_s0.png deleted: evaluation_outputs/forward_rms/evaluation_train_all_samples.csv deleted: evaluation_outputs/forward_rms/evaluation_val_all_samples.csv deleted: evaluation_outputs/forward_rms/evaluation_val_s0.png deleted: evaluation_outputs/forward_rms/evaluation_val_s0_waveform.png deleted: evaluation_outputs/task1_feature_mlp/evaluation_train_all_samples.csv deleted: evaluation_outputs/task1_feature_mlp/evaluation_train_curve.png deleted: evaluation_outputs/task1_feature_mlp/evaluation_val_all_samples.csv deleted: evaluation_outputs/task1_feature_mlp/evaluation_val_curve.png deleted: evaluation_outputs/task1_feature_mlp/evaluation_val_s0.png deleted: evaluation_outputs/task1_feature_mlp/harmonic_5mm_0.75Hz_prediction.png deleted: evaluation_outputs/task1_feature_mlp/harmonic_5mm_1.55Hz_prediction.png deleted: evaluation_outputs/task1_tr_tree/evaluation_train_all_samples.csv deleted: evaluation_outputs/task1_tr_tree/evaluation_train_curve.png deleted: evaluation_outputs/task1_tr_tree/evaluation_val_all_samples.csv deleted: evaluation_outputs/task1_tr_tree/evaluation_val_curve.png deleted: evaluation_outputs/task1_tr_tree/harmonic_5mm_1.55Hz_prediction.png deleted: sanity_check_alignment_forward.png new file: scripts/README.md modified: scripts/__pycache__/config.cpython-310.pyc modified: scripts/__pycache__/dataset.cpython-310.pyc deleted: scripts/__pycache__/model.cpython-310.pyc modified: scripts/config.py modified: scripts/dataset.py modified: scripts/evaluate.py deleted: scripts/model.py modified: scripts/predict_single.py deleted: scripts/train.py new file: scripts/train_final.py deleted: scripts_tree/__pycache__/config.cpython-310.pyc deleted: scripts_tree/config.py deleted: scripts_tree/evaluate.py deleted: scripts_tree/predict_single.py deleted: scripts_tree/train.py deleted: src/__pycache__/config.cpython-310.pyc deleted: src/__pycache__/config.cpython-314.pyc deleted: src/__pycache__/dataset.cpython-310.pyc deleted: src/__pycache__/dataset.cpython-314.pyc deleted: src/__pycache__/model.cpython-310.pyc deleted: src/__pycache__/model.cpython-314.pyc deleted: src/config.py deleted: src/dataset.py deleted: src/evaluate.py deleted: src/model.py deleted: src/sanity_check.py deleted: src/train.py deleted: src_new/__pycache__/config.cpython-310.pyc deleted: src_new/__pycache__/dataset.cpython-310.pyc deleted: src_new/__pycache__/evaluate.cpython-310.pyc deleted: src_new/__pycache__/model.cpython-310.pyc deleted: src_new/__pycache__/train.cpython-310.pyc deleted: src_new/config.py deleted: src_new/dataset.py deleted: src_new/evaluate.py deleted: src_new/model.py deleted: src_new/train.py deleted: src_old/__init__.py deleted: src_old/__pycache__/config.cpython-310.pyc deleted: src_old/__pycache__/config.cpython-314.pyc deleted: src_old/__pycache__/dataset.cpython-310.pyc deleted: src_old/__pycache__/dataset.cpython-314.pyc deleted: src_old/__pycache__/evaluate.cpython-314.pyc deleted: src_old/__pycache__/model.cpython-310.pyc deleted: src_old/__pycache__/model.cpython-314.pyc deleted: src_old/__pycache__/train.cpython-310.pyc deleted: src_old/__pycache__/train.cpython-314.pyc deleted: src_old/config.py deleted: src_old/dataset.py deleted: src_old/evaluate.py deleted: src_old/model.py deleted: src_old/train.py
84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from pathlib import Path
|
|
|
|
|
|
CORE_FEATURE_NAMES: tuple[str, ...] = (
|
|
"frequency_hz",
|
|
"frequency_squared",
|
|
"x_rms",
|
|
"theoretical_accel",
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class DataConfig:
|
|
project_root: Path = field(default_factory=lambda: Path(__file__).resolve().parents[1])
|
|
data_dir: str = "downloads/Non_TMD"
|
|
harmonic_pattern: str = "harmonic*.csv"
|
|
|
|
code_column: str = "code"
|
|
time_column: str = "time"
|
|
base_sensor_code: str = "WSMS00012"
|
|
base_axis: str = "value1"
|
|
response_sensor_code: str = "WSMS00007"
|
|
response_axis: str = "value3"
|
|
|
|
middle_segment_start_ratio: float = 0.20
|
|
middle_segment_end_ratio: float = 0.80
|
|
min_segment_length: int = 512
|
|
steady_window_ratio: float = 0.25
|
|
steady_window_stride_ratio: float = 0.05
|
|
stability_subwindow_count: int = 4
|
|
interpolation_method: str = "linear"
|
|
normalization_eps: float = 1e-6
|
|
harmonic_amplitude_m: float = 0.005
|
|
|
|
data_root: Path = field(init=False)
|
|
|
|
def __post_init__(self) -> None:
|
|
self.project_root = Path(self.project_root).resolve()
|
|
self.data_root = (self.project_root / self.data_dir).resolve()
|
|
|
|
|
|
@dataclass
|
|
class ModelConfig:
|
|
model_name: str = "knn_distance"
|
|
n_neighbors: int = 4
|
|
distance_power: int = 2
|
|
|
|
|
|
@dataclass
|
|
class TrainConfig:
|
|
checkpoint_dir: str = "checkpoints_final"
|
|
model_name: str = "task1_final_model.pkl"
|
|
fit_csv_name: str = "task1_final_fit_all.csv"
|
|
fit_figure_name: str = "task1_final_fit_curve.png"
|
|
dense_curve_csv_name: str = "task1_final_dense_curve.csv"
|
|
evaluation_dense_csv_name: str = "evaluation_dense_curve.csv"
|
|
dense_curve_points: int = 400
|
|
|
|
|
|
@dataclass
|
|
class ExperimentConfig:
|
|
data: DataConfig = field(default_factory=DataConfig)
|
|
model: ModelConfig = field(default_factory=ModelConfig)
|
|
train: TrainConfig = field(default_factory=TrainConfig)
|
|
|
|
|
|
def make_experiment_config() -> ExperimentConfig:
|
|
return ExperimentConfig()
|
|
|
|
|
|
def checkpoint_dir(config: ExperimentConfig) -> Path:
|
|
path = config.data.project_root / config.train.checkpoint_dir / "task1_final"
|
|
path.mkdir(parents=True, exist_ok=True)
|
|
return path
|
|
|
|
|
|
def evaluation_dir(config: ExperimentConfig) -> Path:
|
|
path = config.data.project_root / "evaluation_outputs" / "task1_final"
|
|
path.mkdir(parents=True, exist_ok=True)
|
|
return path
|