CV Beispiel aus Buch "PYTHON FÜR NEURONALE NETZE"

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
lutrascope
User
Beiträge: 3
Registriert: Freitag 25. August 2023, 10:50

Hallo,
ich probiere mich gerade durch ein Beispiel aus dem og. Buch. Meine Umgebung ist Visual Studio Code.
Das im Buch angegebene funktioniert nicht:

Code: Alles auswählen

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras import datasets, layers, models
darum habe ich das so geändert:

Code: Alles auswählen

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
from tensorflow import keras
from keras import datasets, layers, models
import tensorflow as tf
Im Buch steht:
Wenn wir unsere Daten von Keras laden, bekommen wir, praktischer Weise,
bereits zwei Tupel mit den Trainings- und Testdaten.

Code: Alles auswählen

(trainings_bilder, trainings_label), (test_bilder, test_label)
= datasets.cifar10.load_data()
trainings_bilder, test_bilder =
trainings_bilder / 255.0, test_bilder / 255.0
Wir benutzen hier die Methode load_data des Datensatzes cifar10 von den
Keras-Datasets. Ebenso normalisieren wir unsere Daten direkt, indem wir alle
Werte durch 255 dividieren. Da es sich hierbei um RGB-Werte handelt, und
da die Werte zwischen 0 und 255 liegen, sind anschließend alle Werte
zwischen 0 und 1.
VC meldet für die "Tupels" eine nicht definierte Variable und auch sonst ist mir die "Normalisierung" nicht klar. Bisher habe ich durch langes suchen immer weiter gefunden, aber hier stecke ich jetzt gerade fest.
Kann mir da jemand evtl. weiter helfen?

Gruß
Peter
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte die konkrete Fehlermeldung und den dazugehoerigen, vollstaendigen Code zeigen.

Was die Normalisierung angeht: RGB-Werte werden meistens als 8-Bit-3-Kanal-Information gespeichert, also ein Wertebereich von 0..255 pro Kanal. Wenn man also ein solches Bild als Numpy-Array mit (breite, hoehe, 3)-shape hat, dann teilt man das durch 255, und hat Werte von 0..1. Das wird wahrscheinlich dem Training foerderlich sein, genaueres muesste man bei den verwandten Methoden nachlesen.
lutrascope
User
Beiträge: 3
Registriert: Freitag 25. August 2023, 10:50

hier die Fehlermeldung:
"trainings_bilder" is not definedPylancereportUndefinedVariable
(function) trainings_bilder: Any

analog das selbe für trainings_label , test_bilder und test_label
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@lutrascope: Ist das wirklich alles oder bekommst du einen vollständingen Traceback?
__deets__ hat auch nicht umsonst nach dem Code gefragt. Denn man kann dir auch nur sagen, was schon in der Fehlermeldung steht: trainings_bilder ist nicht definiert.
lutrascope
User
Beiträge: 3
Registriert: Freitag 25. August 2023, 10:50

Habs gefunden,
habe den Zeilenumbruch vom Kopieren aus dem PDF nicht entfernt (Dämlich)
Danke
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das ist ja gar keine Ausnahme, das ist was vom Editor das *denkt* das sei nicht definiert. Klar, das kann ein korrekter Hinweis sein, kann aber auch genau so gut die grenzen von statischer Analyse einer dynamischen Programmiersprache aufzeigen. Pylance ist ein VS Code Plugin das Python-Code durchcheckt.

Andererseits: Wenn der Code da tatsächlich so mit den Zeilenumbrüchen steht wie im Beitrag angegeben, dann kommt das nicht mal am Compiler vorbei, und auch Pylance sollte deutlich sagen dass das syntaktisch falsch ist. *Das* kann eine statische Analyse sehr sicher feststellen. 😀

Ich weiss nicht ob's schon mal jemand erwähnt hat, aber wir müssten halt konkreten Quelltext sehen. 😎
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten