/* Basic Styling */
body {
font-family: sans-serif;
margin: 0;
padding: 0;
}

# Continue the main() function where it was cut off

    # Create label to id mapping if needed

    unique_labels = sorted(set(train_labels + val_labels + test_labels))

    num_labels = len(unique_labels)

    logging.info(f”Found {num_labels} unique labels: {unique_labels}”)

    if not all(isinstance(label, int) for label in train_labels):

        # Convert string labels to integers

        label_to_id = {label: i for i, label in enumerate(unique_labels)}

        train_labels = [label_to_id[label] for label in train_labels]

        val_labels = [label_to_id[label] for label in val_labels]

        test_labels = [label_to_id[label] for label in test_labels]

        logging.info(f”Converted labels to IDs: {label_to_id}”)

    # Initialize model

    logging.info(f”Initializing XnapASI model with echo_model={echo_model_name}, fusion_method={fusion_method}”)

    model = XnapASI(echo_model_name=echo_model_name, fusion_method=fusion_method, num_labels=num_labels)

    # Update dropout if specified

    if dropout != 0.1:

        model.dropout.p = dropout

        logging.info(f”Updated dropout to {dropout}”)

    # Create datasets

    train_dataset = XnapASIDataset(

        train_texts, train_labels, model.echo_tokenizer, 

        augment=args.use_augmentation, aug_prob=args.augmentation_prob

    )

    val_dataset = XnapASIDataset(val_texts, val_labels, model.echo_tokenizer)

    test_dataset = XnapASIDataset(test_texts, test_labels, model.echo_tokenizer)

    # Create dataloaders

    train_dataloader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)

    val_dataloader = DataLoader(val_dataset, batch_size=batch_size)

    test_dataloader = DataLoader(test_dataset, batch_size=batch_size)

    # Load pre-trained model if specified

    if args.load_model:

        if os.path.exists(args.load_model):

            model = XnapASI.load(args.load_model)

            logging.info(f”Loaded pre-trained model from {args.load_model}”)

        else:

            logging.warning(f”Model file {args.load_model} not found. Initializing new model.”)

    # Train model

    if args.do_train:

        logging.info(“Starting model training…”)

        model = train_xnap_asi(

            model=model,

            train_dataloader=train_dataloader,

            val_dataloader=val_dataloader,

            epochs=args.epochs,

            lr=learning_rate,

            output_dir=args.output_dir,

            use_amp=args.use_amp,

            save_interval=args.save_interval,

            max_grad_norm=args.max_grad_norm

        )

        logging.info(“Training completed.”)

    # Evaluate model

    if args.do_eval:

        logging.info(“Starting model evaluation…”)

        results = evaluate_xnap_asi(

            model=model,

            test_dataloader=test_dataloader,

            output_dir=os.path.join(args.output_dir, “evaluation”)

        )

        logging.info(f”Evaluation complete. Results: {results}”)

    logging.info(“All tasks completed.”)

if __name__ == “__main__”:

    parser = argparse.ArgumentParser(description=”Train and evaluate XnapASI model”)

    # Data arguments

    parser.add_argument(“–data_path”, type=str, required=True, help=”Path to the data file”)

    parser.add_argument(“–test_size”, type=float, default=0.2, help=”Proportion of data for testing”)

    parser.add_argument(“–val_size”, type=float, default=0.1, help=”Proportion of data for validation”)

    # Model arguments

    parser.add_argument(“–echo_model_name”, type=str, default=”gpt2″, help=”Name of the echo model”)

    parser.add_argument(“–fusion_method”, type=str, default=”weighted”, 

                        choices=[“weighted”, “attention”, “gating”, “concat”], 

                        help=”Method to fuse representations”)

    parser.add_argument(“–load_model”, type=str, default=None, help=”Path to load pre-trained model”)

    # Training arguments

    parser.add_argument(“–do_train”, action=”store_true”, help=”Whether to train the model”)

    parser.add_argument(“–do_eval”, action=”store_true”, help=”Whether to evaluate the model”)

    parser.add_argument(“–epochs”, type=int, default=10, help=”Number of training epochs”)

    parser.add_argument(“–batch_size”, type=int, default=32, help=”Batch size for training”)

    parser.add_argument(“–learning_rate”, type=float, default=2e-5, help=”Learning rate”)

    parser.add_argument(“–dropout”, type=float, default=0.1, help=”Dropout rate”)

    parser.add_argument(“–use_amp”, action=”store_true”, help=”Use automatic mixed precision”)

    parser.add_argument(“–save_interval”, type=int, default=1, help=”Save model every N epochs”)

    parser.add_argument(“–max_grad_norm”, type=float, default=1.0, help=”Max gradient norm for clipping”)

    parser.add_argument(“–use_augmentation”, action=”store_true”, help=”Use data augmentation”)

    parser.add_argument(“–augmentation_prob”, type=float, default=0.5, help=”Probability of applying augmentation”)

    # Optimization arguments

    parser.add_argument(“–optimize”, action=”store_true”, help=”Perform hyperparameter optimization”)

    parser.add_argument(“–optuna_trials”, type=int, default=20, help=”Number of Optuna trials”)

    # Output arguments

    parser.add_argument(“–output_dir”, type=str, default=”./models”, help=”Directory to save models”)

    parser.add_argument(“–log_dir”, type=str, default=”./logs”, help=”Directory to save logs”)

    # Miscellaneous

    parser.add_argument(“–seed”, type=int, default=42, help=”Random seed”)

    args = parser.parse_args()

    main(args)

/* Header Styling */
header {
background-color: #333;
color: #fff;
text-align: center;
padding: 1rem 0;
}

h1 {
margin: 0;
font-size: 2rem;
}

/* Hero Section Styling */
.hero {
background-color: #f0f0f0;
text-align: center;
padding: 4rem 0;
}

.hero-image {
max-width: 800px;
margin: 0 auto;
display: block;
}

/* About Us Section Styling */
.about {
padding: 2rem;
background-color: #fff;
}

/* Services Section Styling */
.services {
background-color: #eee;
padding: 2rem;
}

.service-item {
margin-bottom: 2rem;
}

/* Portfolio Section Styling */
.portfolio {
padding: 2rem;
background-color: #fff;
}

/* Testimonials Section Styling */
.testimonials {
background-color: #eee;
padding: 2rem;
}

/* Contact Section Styling */
.contact {
background-color: #333;
color: #fff;
padding: 2rem;
}

/* Footer Styling */
footer {
background-color: #333;
color: #fff;
text-align: center;
padding: 1rem 0;
}

Oh Xnap! Looks like we have to do this the old-school way, call us: +91-9620931299

Scroll to Top
Our experience drives proven results
1
Emergency?
You can also call or email us, click here