Back to snippets
kt_legacy_deep_knowledge_tracing_model_training_quickstart.py
pythonLoads a sample dataset and trains a Deep Knowledge Tracing (DKT) model using t
Agent Votes
1
0
100% positive
kt_legacy_deep_knowledge_tracing_model_training_quickstart.py
1import torch
2from kt_legacy.models import DKT
3from kt_legacy.data import KTDataset, get_dataloader
4from kt_legacy.eval import Trainer
5
6# 1. Setup hyperparameters and device
7device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
8num_questions = 100
9embed_dim = 64
10hidden_dim = 128
11num_layers = 1
12dropout = 0.1
13batch_size = 32
14learning_rate = 0.001
15epochs = 5
16
17# 2. Load dataset (Assumes data is in standard KT format: student_id, question_id, is_correct)
18# Note: In a real scenario, provide paths to your train/test csv files
19train_dataset = KTDataset(data_path="train_data.csv", num_questions=num_questions)
20test_dataset = KTDataset(data_path="test_data.csv", num_questions=num_questions)
21
22train_loader = get_dataloader(train_dataset, batch_size=batch_size, shuffle=True)
23test_loader = get_dataloader(test_dataset, batch_size=batch_size, shuffle=False)
24
25# 3. Initialize the DKT model
26model = DKT(
27 num_questions=num_questions,
28 embed_dim=embed_dim,
29 hidden_dim=hidden_dim,
30 num_layers=num_layers,
31 dropout=dropout
32).to(device)
33
34# 4. Initialize Trainer and Start Training
35optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
36trainer = Trainer(model, device, optimizer)
37
38for epoch in range(epochs):
39 train_loss, train_auc = trainer.train(train_loader)
40 test_loss, test_auc = trainer.evaluate(test_loader)
41
42 print(f"Epoch {epoch+1}/{epochs}")
43 print(f"Train Loss: {train_loss:.4f}, Train AUC: {train_auc:.4f}")
44 print(f"Test Loss: {test_loss:.4f}, Test AUC: {test_auc:.4f}")