GitHub Action
Automated deployment from GitHub Actions
f8f5549
from EmotionRecognition.utils.common import read_yaml, create_directories
from EmotionRecognition.entity.config_entity import (
DataPreparationConfig,
DataPreprocessingConfig,
ModelTrainerConfig,
ModelEvaluationConfig
)
from pathlib import Path
class ConfigurationManager:
def __init__(
self,
config_filepath = Path("config/config.yaml"),
params_filepath = Path("params.yaml")):
self.config = read_yaml(config_filepath)
self.params = read_yaml(params_filepath)
create_directories([self.config.artifacts_root])
def get_data_preparation_config(self) -> DataPreparationConfig:
prep_config = self.config.data_preparation
# Note: Raw data paths are now defined in data_preparation, not a separate ingestion config
create_directories([prep_config.root_dir])
return DataPreparationConfig(
root_dir=Path(prep_config.root_dir),
ferplus_pixels_csv=Path(prep_config.ferplus_pixels_csv),
ferplus_labels_csv=Path(prep_config.ferplus_labels_csv),
ckplus_dir=Path(prep_config.ckplus_dir),
combined_train_dir=Path(prep_config.combined_train_dir),
ferplus_test_dir=Path(prep_config.ferplus_test_dir)
)
def get_data_preprocessing_config(self) -> DataPreprocessingConfig:
preprocess_config = self.config.data_preprocessing
create_directories([preprocess_config.root_dir])
return DataPreprocessingConfig(
root_dir=Path(preprocess_config.root_dir),
source_train_dir=Path(preprocess_config.source_train_dir),
source_test_dir=Path(preprocess_config.source_test_dir),
balanced_train_dir=Path(preprocess_config.balanced_train_dir),
balanced_test_dir=Path(preprocess_config.balanced_test_dir),
target_samples_per_class=preprocess_config.target_samples_per_class
)
def get_model_trainer_config(self) -> ModelTrainerConfig:
config = self.config.model_trainer
create_directories([config.root_dir])
return ModelTrainerConfig(
root_dir=Path(config.root_dir),
train_data_dir=Path(config.train_data_dir),
test_data_dir=Path(config.test_data_dir),
trained_model_path=Path(config.trained_model_path)
)
def get_model_evaluation_config(self) -> ModelEvaluationConfig:
config = self.config.model_evaluation
create_directories([config.root_dir])
return ModelEvaluationConfig(
root_dir=Path(config.root_dir),
test_data_dir=Path(config.test_data_dir), # Corrected from data_dir
trained_model_path=Path(config.trained_model_path),
metrics_file_name=Path(config.metrics_file_name),
mlflow_uri=config.mlflow_uri
)