Was bedeuten die Zahlen bei der Modelvorhersage (Neuronale Netze, pyTorch)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

wenn eine Zahl negativ ist, ist “Ja” für die zugehörige Klasse unwahrscheinlich, wenn positiv ist Ja wahrscheinlich. Um diese Zahlen in wahrscheinlichkeitequivalente Zahlen umzuwandeln musst du eine sigmoid funktion benytzen

SamanthaI 
Fragesteller
 25.09.2021, 23:43

Danke :D Nun trainiert es aber leider nicht mehr :/

model = tf.keras.Sequential([

tf.keras.layers.experimental.preprocessing.Rescaling(1./255),

tf.keras.layers.Conv2D(32, 3, activation='relu'),

tf.keras.layers.MaxPooling2D(),

tf.keras.layers.Conv2D(32, 3, activation='relu'),

tf.keras.layers.MaxPooling2D(),

tf.keras.layers.Conv2D(32, 3, activation='relu'),

tf.keras.layers.MaxPooling2D(),

tf.keras.layers.Flatten(),

tf.keras.layers.Dense(128, activation='relu'),

tf.keras.layers.Dense(num_classes, activation='sigmoid')

])

0
covid69  26.09.2021, 05:08
@SamanthaI

keine Ahnung was der fehler ist hier, aber checke mal wenn du Binary cross entropy benutzt ob deine loss function “from_logits” true hat. Wenn du sigmoid activation hast solllte es from_logits=false sein.

1
SamanthaI 
Fragesteller
 26.09.2021, 20:45
@covid69

Danke, hab ich eingestellt. Aber die Sparse Categorical accuracy ist ok oder? Weil die verändert sich nicht.

0
SamanthaI 
Fragesteller
 26.09.2021, 20:54
@SamanthaI

Habs mal zu softmax verändert, hilft aber auch nicht.

0
SamanthaI 
Fragesteller
 26.09.2021, 21:02
@SamanthaI

Es erkennt alle Bilder als zugehörig zu einer und derselben Klasse...

0
SamanthaI 
Fragesteller
 26.09.2021, 21:03
@SamanthaI

Kann es was damit zu tun haben, dass der Datensatz unausgewogen ist?

1
covid69  27.09.2021, 05:20
@SamanthaI

softmax muss du benutzen wenn jedes sample nur zu einer Klasse gehören kann. Zb “Hund” oder “Katze” -nicht aber “Auto” und “Katze”.

nein, wenn der Datensatz unausgewogen ist, wird meistens nur diese eine Klasse vorhergesagt und der loss würde auch kleiner werden.

Sparse categorical accuracy kenne ich nicht als loss function

1

Warte mal, du schreibst PyTorch oben und unten verwendest du Keras? Die Zahlen sagen nur aus, wie sicher dein Model vermutlicht bei der Prediction ist. Also brauchst du argmax(output) um die Klasse rauszufinden. Kannst deine Prediction auch durch ne softmax output Funktion laufen lassen, um richtige Wahrscheinlichkeiten zu erhalten. Du wirst dann sehen, dass 9.8 die höchste Wahrscheinlichkeit hat. D.h. das Bild wird vermutlich zur dritten Kategorie gehören.

SamanthaI 
Fragesteller
 29.09.2021, 18:18

Danke :) ja, ich hab mich da vertan, ich wechsel leider momentan ständig zwischen den beiden Bibliotheken.

0