0 Pluspunkte 0 Minuspunkte

Ich habe ein 2 dimensionales Array mit verschiedenen unbekannten Längen

[[1,2,3,4,5], 
 [1,2,3,4], 
 [1,2,3,4,5,6], 
 [1,2,3,4]]

und möchte daraus einen Tensor erstellen. Wie mache ich das mit Torch?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Zuerst bestimmst du die maximale Länge aller Listen und dann fügst du für jeder Liste entsprechend viele Nullen (oder was du möchtest) am Ende hinzu, um ihre Länge an die maximale Länge anzupassen. Das konvertierst du in ein NumPy Array und dann in einen Tensor.

import torch
import numpy as np

# Deine Liste von Listen mit unterschiedlichen Längen
data_list = [
    [1, 2, 3, 4, 5],
    [1, 2, 3, 4],
    [1, 2, 3, 4, 5, 6],
    [1, 2, 3, 4]
]

# Bestimme die maximale Länge unter den Unterlisten
max_length = max(len(sublist) for sublist in data_list)

# Fülle fehlende Werte mit Nullen auf und erstelle eine neue Liste von Listen
filled_data_list = [sublist + [0] * (max_length - len(sublist)) for sublist in data_list]

# Konvertiere die Liste von Listen in ein NumPy-Array
numpy_array = np.array(filled_data_list)

# Konvertiere das NumPy-Array in einen PyTorch-Tensor
tensor = torch.tensor(numpy_array)

print(tensor)
von