[PYTHON] Kreuzvalidierung mit PyTorch

Einführung

Erfahren Sie, wie Sie bei Verwendung von Dataset mit Pytorch eine Kreuzvalidierung durchführen.

Mit Teilmenge teilen

Sie können torch.utils.data.dataset.Subset verwenden, um einen Datensatz durch Angabe eines Index aufzuteilen. Kombinieren Sie dies mit dem scikit-learn sklearn.model_selection.

train_test_split Verwenden Sie sklearn.model_selection.train_test_split, um den Index in train_index und valid_index aufzuteilen, und verwenden Sie Subset, um den Datensatz aufzuteilen.

from torch.utils.data import Dataset, DataLoader
from torch.utils.data.dataset import Subset
from sklearn.model_selection import train_test_split


dataset = get_dataset()

train_index, valid_index = train_test_split(range(len(dataset)), test_size=0.3)

batch_size = 16
train_dataset = Subset(dataset, train_index)
train_dataloader = DataLoader(train_dataset, batch_size, shuffle=True)
valid_dataset   = Subset(dataset, valid_index)
valid_dataloader = DataLoader(valid_dataset, batch_size, shuffle=False)

#Code hier lernen

KFold Cross Validation

Verwenden Sie sklearn.model_selection.KFold, um den Index in train_index und valid_index aufzuteilen, und verwenden Sie Subset, um den Datensatz aufzuteilen.

from torch.utils.data import Dataset, DataLoader
from torch.utils.data.dataset import Subset
from sklearn.model_selection import KFold


dataset = get_dataset()

batch_size = 16
kf = KFold(n_splits=3)

for _fold, (train_index, test_index) in enumerate(kf.split(X)):
    train_dataset = Subset(dataset, train_index)
    train_dataloader = DataLoader(train_dataset, batch_size, shuffle=True)
    valid_dataset   = Subset(dataset, valid_index)
    valid_dataloader = DataLoader(valid_dataset, batch_size, shuffle=False)

    #Code hier lernen

Wenn es sich um einen Klassenklassifizierungsdatensatz handelt, sollten Sie in der Lage sein, den Wert von "y" zu erhalten, indem Sie "Datensatz [:] [1]" ausführen, sodass Sie auch "Stratified KFold" ausführen können sollten.

Recommended Posts

Kreuzvalidierung mit PyTorch
Spiele mit PyTorch
Beginnend mit PyTorch
Verwenden Sie RTX 3090 mit PyTorch
Installieren Sie Fackelstreuung mit PyTorch 1.7
Versuchen Sie, XOR mit PyTorch zu implementieren
Implementieren Sie PyTorch + GPU mit Docker
Vorhersage des Nikkei-Durchschnitts mit Pytorch 2
Maschinelles Lernen Minesweeper mit PyTorch
PyTorch mit AWS Lambda [Lambda-Import]
Vorhersage des Nikkei-Durchschnitts mit Pytorch
Führen Sie mit PyTorch eine geschichtete Aufteilung durch
Ich habe Word2Vec mit Pytorch gemacht
[PyTorch Tutorial ⑤] PyTorch anhand von Beispielen lernen (Teil 2)
Lernen Sie mit PyTorch Graph Convolutional Networks
Ich habe versucht, Attention Seq2Seq mit PyTorch zu implementieren
Ich habe versucht, DeepPose mit PyTorch zu implementieren
Aufblasen von Daten (Datenerweiterung) mit PyTorch
[PyTorch Tutorial ⑤] PyTorch anhand von Beispielen lernen (Teil 1)
pytorch @ python3.8 Umgebungskonstruktion mit pipenv
Erzielen Sie mit Tensorflow eine Pytorch-Reflexionspolsterung
Sinuswellenvorhersage (Rückkehr) mit Pytorch
Installieren Sie die Pytorch
Multi-Class Multi-Label-Klassifizierung von Bildern mit Pytorch
Ich habe versucht, Shake-Shake Regularization (ShakeNet) mit PyTorch zu implementieren
PyTorch-Links
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Übe Pytorch
Dokumentklassifizierung mit toch Text von PyTorch
[Einführung in Pytorch] Ich habe mit sinGAN ♬ gespielt
Ich habe versucht, DeepPose mit PyTorch PartⅡ zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Maschinelles Lernen mit Pytorch in Google Colab
Installieren Sie PyTorch
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Die Geschichte des Versuchs, Tensorboard mit Pytorch zu verwenden
Zeigen Sie das Bild nach der Datenerweiterung mit Pytorch an