Ich definiere meine eigene Train () -Funktion - die Schulungen und Validierung (möglicherweise der Name der Funktion ist hier nicht der beschreibendste) < /p>
, da ich eine verwende Custom iterable Dataset zusammen mit einem Dataloader versuche ich herauszufinden, wie diese Metriken berechnet werden. Der iterable Datensatz hat keine Länge (), daher kann ich nicht wirklich einen anderen Weg herausfinden. < /P>
Hier ist mein Code bisher:
Ich definiere meine eigene Train () -Funktion - die Schulungen und Validierung (möglicherweise der Name der Funktion ist hier nicht der beschreibendste) < /p> , da ich eine verwende Custom iterable Dataset zusammen mit einem Dataloader versuche ich herauszufinden, wie diese Metriken berechnet werden. Der iterable Datensatz hat keine Länge (), daher kann ich nicht wirklich einen anderen Weg herausfinden. < /P> Hier ist mein Code bisher:[code]import torch from torch.utils.data import DataLoader from new_data_loader import ProtobufIterableDataset, BatchShuffleDataset from model import SimpleModel import torch.optim as optim import torch.nn as nn from tqdm import tqdm
for epoch in epoch_pbar: # Training Phase model.train() train_loss = 0 train_correct = 0 train_total = 0
# Create progress bar for training batches train_pbar = tqdm(trainingDataLoader, desc=f'Training Epoch {epoch+1}/{epochs}', position=1, leave=False)
# For every batch for set_features, access_features, cache_features, labels in train_pbar: # Combine features cache_features_flat = cache_features.reshape(-1, 17*9) combined_features = torch.cat([set_features, access_features, cache_features_flat], dim=1)
# Move to device combined_features = combined_features.to(device) labels = labels.to(device)
# Zero gradients optimizer.zero_grad()
# Forward pass outputs = model(combined_features) loss = criterion(outputs, labels)
# Update training progress bar with current loss and accuracy train_pbar.set_postfix({ 'loss': f'{train_loss/train_total:.4f}', 'acc': f'{100 * train_correct/train_total:.2f}%' })
# Update validation progress bar with current loss and accuracy val_pbar.set_postfix({ 'loss': f'{val_loss/val_total:.4f}', 'acc': f'{100 * val_correct/val_total:.2f}%' })
# Update epoch progress bar with final metrics epoch_pbar.set_postfix({ 'train_loss': f'{train_loss/(trainingDataLoader.__len__()):.4f}', 'train_acc': f'{100 * train_correct/train_total:.2f}%', 'val_loss': f'{val_loss/(validationDataLoader.__len__()):.4f}', 'val_acc': f'{100 * val_correct/val_total:.2f}%' })
# Print final statistics for the epoch print(f'\nEpoch {epoch+1}/{epochs}:') print(f'Training Loss: {train_loss/(trainingDataLoader.__len__()):.4f}, ' f'Training Accuracy: {100 * train_correct/train_total:.2f}%') print(f'Validation Loss: {val_loss/(validationDataLoader.__len__()):.4f}, ' f'Validation Accuracy: {100 * val_correct/val_total:.2f}%\n') [/code]
Ich baue/optimiere ein CNN für die Klassifizierung von Autos aus diesem Datensatz.
Mein Basismodell erreicht durch eine sehr einfache Modellarchitektur eine überraschend hohe Genauigkeit. Ich...
Ich baue/optimiere ein CNN für die Klassifizierung von Autos aus diesem Datensatz.
Mein Basismodell erreicht durch eine sehr einfache Modellarchitektur eine überraschend hohe Genauigkeit. Ich...
Mein Ziel ist es, ein von einer Kamera erfasster Bild zu transformieren und dieses Bild in orthographisches Bild ohne Auswirkungen der Perspektive umzuwandeln. Ich habe eine Kamera, die oben...
Ich arbeite an einem Projekt, bei dem ich einen Datensatz reinigen muss, der für einen Chatbot verwendet wird. Der Datensatz enthält Textdaten, Codeausschnitte und mathematische Formeln, und ich...