Beim Trainieren und Überprüfen von Daten mit einem neuronalen Netzwerk müssen die Daten in die Form (Datengruppe, Bezeichnung) gebracht werden. MNIST und CIFAR10 haben diese Form im Voraus, aber wenn Sie die Daten verwenden, die Sie haben, müssen Sie diese Form selbst erstellen. Das Verständnis hat jedoch einige Zeit gedauert, daher werde ich es hier speichern.
Darüber hinaus gab es Personen, die auf Englisch über die grundlegende Methode geantwortet haben. Wenn Sie also Englisch sprechen können, lesen Sie bitte die folgende Reihe von Austauschen. Convert Pandas dataframe to PyTorch tensor?
Diese Qiita ergänzt den Kontext und erklärt sie etwas ausführlicher. Bitte lesen Sie sie nur, wenn dies erforderlich ist.
train_label = torch.tensor(train['target'].values)
Zitat: Pandas-Datenrahmen in PyTorch-Tensor konvertieren?
train_data = torch.tensor(X.drop('target', axis = 1).values)
Zitat: Pandas-Datenrahmen in PyTorch-Tensor konvertieren?
Dies kann jedoch zu folgendem Fehler führen:
Error
TypeError: can't convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, int64, int32, int16, int8, uint8, and bool.
Wie oben erwähnt, kann der Typ von np.ndarray, wenn er ein Objekt ist, nicht in torch.tensor konvertiert werden. Ein Objekt ist ein Datentyp, der eine Mischung aus mehreren Datentypen ist. Daher müssen die Daten in einen der oben genannten entsprechenden Datentypen des Tensors konvertiert werden. Lassen Sie es uns beispielsweise mit dem Typ float32 vereinheitlichen. Es funktioniert gut, wenn Sie es wie folgt umschreiben.
train_data = torch.tensor(X.drop('target', axis = 1).values.astype(np.float32))
Zitat: Pandas-Datenrahmen in PyTorch-Tensor konvertieren?
Verwenden Sie den für Ihre Daten geeigneten Datentyp. Einzelheiten zu Datentypen finden Sie unter Liste der NumPy-Datentypen dtype und Konvertierung nach Astyp (Besetzung).
Oder wenn es einen DataFrame (X_train) gibt, der von Anfang an keine Beschriftung hat, konvertieren Sie ihn in np.array und dann in Tensor.
train_data = torch.tensor(np.array(X_train.astype('f')))
from torch.utils import data
train_tensor = data.TensorDataset(train_data, train_label)
Die Klasse torch.utils.data.TensorDataset verwendet Tensoren als Argument und setzt die Daten zusammen, indem die Tensoren gemäß der ersten Dimension indiziert werden. Natürlich erhalten Sie eine Fehlermeldung, wenn Sie nicht über die Anzahl der zu trainierenden Daten und Beschriftungen verfügen. Referenz: offizielles Tutorial von pytorch
das ist alles.