Zunächst wird eine Attribut einer Klasse in der __init__() Methode der Klasse angelegt.
Dabei wird self.test_data mit einer Leeren liste und self.dataset mit None gleichgesetzt. Wieso wird nicht beides mit None initialisiert? Kann es dafür einen bestimmten Grund geben? Beide Variablen werden im weitern Verlauf des Codes überschrieben, also ist es doch egal wie man die Instanzvariablen initialisiert oder?
Außerdem wird im weiteren Verlauf des Codes ein Objekt wie eine liste behandelt. Das das nicht geht ist mir klar. Wieso das im code gemacht wird ist mir unklar bzw. kann das überhaupt funktionieren?
Code: Alles auswählen
class Klassenname(Parentklasse):
def __init__():
# wieso wird self.test_data mit einer leere Liste und für self.dataset mit None gleichgesetzt
self.test_data = []
self.dataset = None
# an einer anderen stelle des codes weiter untern werden die attribute festgelegt
self.dataset = tfds.loads = tfds.load('mnist', split='train', shuffle_files=True)
self.test_data = self.dataset["train"].shuffle(10).batch(10).prefetch(1)
# an einer anderen stelle versucht man auf mit element_spec auf das shape von test_dataset zuzugreifen. Folgendermaßen:
shape = self.test_data.element_spec[0].shape
# FRAGE: element_spec returnt keine liste sondern ein --> tf.TypeSpec object. Wie kann man mit self.test_data.element_spec[0] auf ein Element zugegriffen werden?
Code: Alles auswählen
data = []
liste = [[[1,2,3],[2,2,2],[21,1,1]]]
df = tf.data.Dataset.from_tensor_slices(liste)
data = df.shuffle(3).batch(2)
data.element_spec[0]