Tag zusammen,
vorneweg, da das hier ja oft kommt:
- ja, das ist für eine Studienarbeit
- ja, ich habe mir bereits Gedanken gemacht und auch Suchmaschinen bedient
- nein, ich möchte nicht meine Arbeit von euch geschrieben haben
- nein, ich erwarte nicht, dass mir jemand die Lösung präsentiert
Dies dient lediglich zum Gedankenaustausch über die generelle Thematik und zur Hilfestellung bei kleinen Fragen.
Da dies nun (hoffentlich) für alle in Ordnung ist, zum Thema:
Ich suche aktuell nach Bewertungskriterien, um verschiedene neuronale Netze miteinander zu vergleichen.
Am naheliegensten ist wohl die Genauigkeit des Netzes, die bekomme ich ja auch relativ einfach.
Zusätzlich dazu ist mir noch die Effizienz in verschiedenen Punkten eingefallen. Dazu ist mir bisher Speicherverbrauch, Trainingsdauer und Auswertedauer eingefallen. Dazu hätte ich allerdings noch Fragen, die mir vielleicht jemand beantworten oder Anregungen bringen kann.
Genauigkeit:
Logisch, je höher die Trefferquote desto besser.
Speicherverbrauch:
Ich verwende Tensorflow und die Estimator-API, habe bisher aber nichts gefunden, um die Größe bzw. Speicherverbrauch des Netzes herauszufinden. Kann ich hier einfach die einzelnen Layer durchgehen und quasi die Neuronen, Gewichte und Bias zählen, um mit dem verwendeten Datentypen den benötigten Speicher zu erhalten?
Im ersten Moment würde ich behaupten, dass der Speicherverbrauch mit der Rechenzeit korreliert. Der zweite Gedanke ging dann in Richtung Parallelisierung, was meinen ersten Gedanken teilweise widerlegt. Wenn viel parallel berechnet wird, sinkt die Rechenzeit und steigt der Speicherbedarf. Wobei mich der Speicherverbrauch ja relativ wenig juckt, sofern genug Speicher vorhanden ist.
Auswertedauer:
Je schneller ich ein Ergebnis erhalte, desto besser. Ich könnte also mein Netz insofern tunen, dass die Auswertung möglichst schnell vonstatten geht (natürlich sofern die Genauigkeit in einem annehmbaren Bereich liegt).
Dazu sollte ja eigentlich reichen, wenn ich die Zeit zwischen Eingabe und Ausgabe messe. Selbst wenn ich die Hardware ändere, sollte das Ergebnis (nicht absolut aber relativ) gleich bleiben. Richtig?
Trainingsdauer:
Wie lang das Training dauert, ist eigentlich relativ egal, man muss ja nicht zuschauen. Wenn man allerdings wirtschaftlich denkt oder auch ökologisch, ist ein schnelleres Training auch was wert.
Selber Ansatz wie bei der Auswertung; einfach Zeit zwischen Start und Ende messen und vergleichen.
Wäre cool, wenn jemand eine Meinung zu den offenen Punkten hätte. Oder auch gerne neue Ideen, wie man ein Netz bewerten könnte!
Danke schon mal im Voraus!
Chill
vorneweg, da das hier ja oft kommt:
- ja, das ist für eine Studienarbeit
- ja, ich habe mir bereits Gedanken gemacht und auch Suchmaschinen bedient
- nein, ich möchte nicht meine Arbeit von euch geschrieben haben
- nein, ich erwarte nicht, dass mir jemand die Lösung präsentiert
Dies dient lediglich zum Gedankenaustausch über die generelle Thematik und zur Hilfestellung bei kleinen Fragen.
Da dies nun (hoffentlich) für alle in Ordnung ist, zum Thema:
Ich suche aktuell nach Bewertungskriterien, um verschiedene neuronale Netze miteinander zu vergleichen.
Am naheliegensten ist wohl die Genauigkeit des Netzes, die bekomme ich ja auch relativ einfach.
Zusätzlich dazu ist mir noch die Effizienz in verschiedenen Punkten eingefallen. Dazu ist mir bisher Speicherverbrauch, Trainingsdauer und Auswertedauer eingefallen. Dazu hätte ich allerdings noch Fragen, die mir vielleicht jemand beantworten oder Anregungen bringen kann.
Genauigkeit:
Logisch, je höher die Trefferquote desto besser.
Speicherverbrauch:
Ich verwende Tensorflow und die Estimator-API, habe bisher aber nichts gefunden, um die Größe bzw. Speicherverbrauch des Netzes herauszufinden. Kann ich hier einfach die einzelnen Layer durchgehen und quasi die Neuronen, Gewichte und Bias zählen, um mit dem verwendeten Datentypen den benötigten Speicher zu erhalten?
Im ersten Moment würde ich behaupten, dass der Speicherverbrauch mit der Rechenzeit korreliert. Der zweite Gedanke ging dann in Richtung Parallelisierung, was meinen ersten Gedanken teilweise widerlegt. Wenn viel parallel berechnet wird, sinkt die Rechenzeit und steigt der Speicherbedarf. Wobei mich der Speicherverbrauch ja relativ wenig juckt, sofern genug Speicher vorhanden ist.
Auswertedauer:
Je schneller ich ein Ergebnis erhalte, desto besser. Ich könnte also mein Netz insofern tunen, dass die Auswertung möglichst schnell vonstatten geht (natürlich sofern die Genauigkeit in einem annehmbaren Bereich liegt).
Dazu sollte ja eigentlich reichen, wenn ich die Zeit zwischen Eingabe und Ausgabe messe. Selbst wenn ich die Hardware ändere, sollte das Ergebnis (nicht absolut aber relativ) gleich bleiben. Richtig?
Trainingsdauer:
Wie lang das Training dauert, ist eigentlich relativ egal, man muss ja nicht zuschauen. Wenn man allerdings wirtschaftlich denkt oder auch ökologisch, ist ein schnelleres Training auch was wert.
Selber Ansatz wie bei der Auswertung; einfach Zeit zwischen Start und Ende messen und vergleichen.
Wäre cool, wenn jemand eine Meinung zu den offenen Punkten hätte. Oder auch gerne neue Ideen, wie man ein Netz bewerten könnte!
Danke schon mal im Voraus!
Chill