Wolfram Language

Audiodaten mittels Transfer-Lernen klassifizieren

Manchmal reicht die Datenmenge, die zur Verfügung steht, um ein Netz zu trainieren, für die jeweilige Aufgabe nicht aus. Transferlernen ist eine mögliche Lösung für dieses Problem. Anstatt ein Netzwerk von Grund auf zu trainieren, ist es möglich, ein Netz als Ausgangspunkt zu verwenden, das bereits für eine andere, aber verwandte Aufgabe trainiert wurde.

Downloaden Sie den ESC-50-Datensatz.

Den kompletten Wolfram Language-Input zeigen

Importieren Sie die Metadaten. Der Datensatz ist eine beschriftete Sammlung von 2000 Aufnahmen von Umweltgeräuschen. Die Dateien sind fünfsekündige Aufzeichnungen, die in 50 semantische Klassen unterteilt sind.

Den kompletten Wolfram Language-Input zeigen

Untersuchen Sie ein Beispiel aus den Metadaten.

Unterteilen Sie den Datensatz in ein Trainings- und ein Testset.

Werfen Sie einen Blick auf die verfügbaren Klassen.

Konstruieren Sie ein Merkmalsextraktor-Netz, indem Sie die letzten Klassifikatorschichten im AudioIdentify-Netz "abschneiden".

Konstruieren Sie ein einfaches lineares Klassifikatornetz, das Sie an den Merkmalsextraktor anhängen.

Anstatt das gesamte Netz neu zu trainieren und in NetTrain eine Option LearningRateMultipliers anzugeben, um nur die Klassifizierungsebenen zu trainieren, können Sie die Ergebnisse des Merkmalsextraktornetzes vorberechnen und den Klassifizierer trainieren. Dadurch wird eine redundante Auswertung des gesamten Netzes vermieden.

Trainieren Sie das Klassifizierernetz mit NetTrain.

Fügen Sie das Merkmalsextraktornetzwerk und den trainierten Klassifikator mit NetJoin zusammen.

Berechnen Sie mit ClassifierMeasurements die Genauigkeit der Testdaten und zeichnen Sie die Konfusionsmatrix der schlimmsten vier Klassen auf.

Verwandte Beispiele

en es fr ja ko pt-br zh