Spaces:
Sleeping
Sleeping
| # src/vitClassifier/config/configuration.py | |
| from vitClassifier.constants import CONFIG_FILE_PATH, PARAMS_FILE_PATH # <-- THIS IMPORT IS THE FIX | |
| from vitClassifier.utils.common import read_yaml, create_directories | |
| from vitClassifier.entity.config_entity import (DataIngestionConfig, | |
| DataTransformationConfig, | |
| TrainingConfig, | |
| EvaluationConfig) | |
| from pathlib import Path | |
| import os | |
| class ConfigurationManager: | |
| def __init__(self, config_filepath=None, params_filepath=None): | |
| # If no path is provided when creating an instance, use the imported constants | |
| if config_filepath is None: | |
| config_filepath = CONFIG_FILE_PATH | |
| if params_filepath is None: | |
| params_filepath = PARAMS_FILE_PATH | |
| self.config = read_yaml(config_filepath) | |
| self.params = read_yaml(params_filepath) | |
| create_directories([self.config.artifacts_root]) | |
| def get_data_ingestion_config(self) -> DataIngestionConfig: | |
| config = self.config.data_ingestion | |
| create_directories([config.root_dir]) | |
| return DataIngestionConfig( | |
| root_dir=Path(config.root_dir), | |
| source_kaggle_dataset_id=config.source_kaggle_dataset_id, | |
| unzip_dir=Path(config.unzip_dir), | |
| train_df_path=Path(config.train_df_path), | |
| test_df_path=Path(config.test_df_path), | |
| val_df_path=Path(config.val_df_path) | |
| ) | |
| def get_data_transformation_config(self) -> DataTransformationConfig: | |
| config = self.config.data_transformation | |
| create_directories([config.root_dir]) | |
| return DataTransformationConfig( | |
| root_dir=Path(config.root_dir), | |
| train_data_path=Path(config.train_data_path), | |
| test_data_path=Path(config.test_data_path), | |
| val_data_path=Path(config.val_data_path), | |
| train_dataset_path=Path(config.train_dataset_path), | |
| test_dataset_path=Path(config.test_dataset_path), | |
| val_dataset_path=Path(config.val_dataset_path) | |
| ) | |
| def get_training_config(self) -> TrainingConfig: | |
| training = self.config.model_training | |
| params = self.params | |
| create_directories([Path(training.root_dir)]) | |
| return TrainingConfig( | |
| root_dir=Path(training.root_dir), | |
| trained_model_path=Path(training.trained_model_path), | |
| model_name=training.model_name, | |
| train_dataset_path=Path(training.train_dataset_path), | |
| val_dataset_path=Path(training.val_dataset_path), | |
| learning_rate=params.LEARNING_RATE, | |
| batch_size=params.BATCH_SIZE, | |
| epochs=params.EPOCHS, | |
| weight_decay=params.WEIGHT_DECAY, | |
| warmup_steps=params.WARMUP_STEPS, | |
| ) | |
| def get_evaluation_config(self) -> EvaluationConfig: | |
| eval_config = self.config.model_evaluation | |
| return EvaluationConfig( | |
| path_of_model=Path(eval_config.model_path), | |
| test_dataset_path=Path(eval_config.test_dataset_path), | |
| mlflow_uri=eval_config.mlflow_uri, | |
| all_params=self.params, | |
| batch_size=self.params.BATCH_SIZE, | |
| metrics_file_name=Path(eval_config.metrics_file_name) # <--- MAKE SURE THIS LINE EXISTS | |
| ) |