VashuTheGreat2's picture
Upload folder using huggingface_hub
243b4bc verified
Raw
History Blame Contribute Delete
2.51 kB
from src.entity.artifact_entity import DataTransformationArtifact, ModelTrainingArtifact
from src.entity.config_entity import ModelTrainingConfig
from src.entity.model import MyModel
from src.utils.asyncHandler import asyncHandler
import pandas as pd
import os
import logging
from torch.utils.data import DataLoader
from src.models.muti_model import MultimodalDataset
class Model_Trainer:
def __init__(self, data_transformation_artifact: DataTransformationArtifact, model_training_config: ModelTrainingConfig):
self.data_transformation_artifact = data_transformation_artifact
self.model_training_config = model_training_config
self.model_training_config.train_file_path = self.data_transformation_artifact.train_path
self.model = MyModel(config=self.model_training_config)
@asyncHandler
async def initiate(self) -> ModelTrainingArtifact:
logging.info("Entered model training step")
try:
train_df = pd.read_csv(self.data_transformation_artifact.train_path)
val_df = pd.read_csv(self.data_transformation_artifact.val_path)
train_dataset = MultimodalDataset(
data_frame=train_df,
config=self.model_training_config
)
val_dataset = MultimodalDataset(
data_frame=val_df,
config=self.model_training_config
)
train_loader = DataLoader(
train_dataset,
batch_size=self.model_training_config.batch_size,
shuffle=True
)
val_loader = DataLoader(
val_dataset,
batch_size=self.model_training_config.batch_size,
shuffle=False
)
self.model.train(train_data_loader=train_loader, val_data_loader=val_loader)
model_path = os.path.join(self.model_training_config.model_dir, self.model_training_config.model_name)
logging.info("Exited model training step")
return ModelTrainingArtifact(
model_path=model_path,
is_trained=True,
message="Model training completed successfully"
)
except Exception as e:
logging.error(f"Model training failed: {str(e)}")
return ModelTrainingArtifact(
model_path="",
is_trained=False,
message=f"Model training failed: {str(e)}"
)