Das Kopieren vieler großer Formeln (neuronale Netze) zwischen Datentabellen ist sehr, sehr langsamIch habe einen Datensatz von 10000 Zeilen x 100+ Spalten, die für die Modellierung neuronaler Netze verwendet werden. Ich habe 75 verschiedene Modelle von 20 Knoten x 100 Eingaben / Knoten erstellt und die Formeln mit schnellen Formeln gespeichert. Ich habe 10 verschiedene Tabellen (gleicher Datensatz, unterschiedliche Modellierung) mit jeweils 75 Modellen und möchte alle Modelle (Formeln) in einer Mastertabelle zusammenführen, da ich alle Modelle auf alle neuen Daten anwenden möchte, die ich sammle.
Jede Methode, die ich versuche, dauert ewig. Ich habe das Add-In zum Kopieren von Formeln verwendet, um die Formeln jeder Tabelle in eine einzelne Tabelle zu kopieren. Insgesamt dauert es ungefähr 2 Tage, bis alle Tabellenzusammenführungen abgeschlossen sind. Ohne Anzeichen für Fortschritte ist es schwer zu erkennen, ob sie noch funktionieren oder funktionieren gefroren.
Ich habe Join verwendet, indem ich Zeilen mit der Auswertung von Unterdrückungsformeln abgeglichen habe, um sie alle in eine Tabelle zu bringen, und das ist schnell. Wenn ich jedoch die Formelauswertung wieder einschalte, indem ich die Formelspalten manuell auswähle und Spalten> Attribute standardisieren> Spalteneigenschaften> Formel> Auswertung unterdrücken verwende, dauert die Neuberechnung der 750 Formeln ewig. Es läuft seit 30 Stunden (maximal 12% Prozessorauslastung) und ich habe keine Ahnung, wie der Fortschritt ist.
Ich habe versucht, die Spalten einzeln zu durchlaufen, um die Formelauswertung zu aktivieren, aber selbst dies für 1 Spalte zu tun, dauerte über 5 Minuten, was unglaublich lang zu sein scheint.
Gibt es eine Möglichkeit, dies zu beschleunigen? Ich weiß, dass es Problemumgehungen gibt, aber dies scheint viel einfacher und schneller zu sein.
Betreff: Das Kopieren vieler großer Formeln (neuronaler Netze) zwischen Datentabellen ist sehr, sehr langsamBei "größeren" Problemen ist es schwierig, allgemeine Ratschläge zur Effizienz zu geben, ohne einige oder alle Details zu kennen. Wenn Sie dies noch nicht getan haben, können Sie die Auswirkungen der Tabellennachrichten "Datenaktualisierung beginnen ()" und "Datenaktualisierung beenden ()" untersuchen und / oder steuern, wie Formeln ausgewertet werden (oder nicht). FWIW, mein Instinkt sagt mir, dass Sie es besser machen können, wenn Sie das verwenden Formel-Depot als Vermittler. Ich habe angefangen, Code zu schreiben, um dies zu überprüfen, aber bei Problemen dieser Größe dauert die Modellierung selbst einige Zeit, sodass ich diesen Weg nicht fortgesetzt habe:
NamesDefaultToHere(1);
// Define the data volume
nr = 100;
nc = 10;
// Make some random data
dt = AsTable(J(nr, nc, RandomNormal(0, 1)));
dt << setName("Random Data");
// Fit neural and publish prediction formula
cols = dt << getColumnNames("String");
yCol = cols[NItems(cols)];
RemoveFrom(cols, NItems(cols));
nn = dt << Neural(Y(Eval(yCol)), X(Eval(cols)), Fit( NTanH( 3 ) ), Invisible);
nn(Fit(1)) << publishPredictionFormula;
Report(nn) << closeWindow;
Betreff: Das Kopieren vieler großer Formeln (neuronaler Netze) zwischen Datentabellen ist sehr, sehr langsamHallo Ian,
Danke für die schnelle Antwort. Ich habe gerade die Formula Depot-Methode von Add Formula From Column mit allen Formeln ausprobiert und die Skripterstellung war schnell. Als ich Run Scripts (mit 6 Skripten) in einer doppelten Tabelle mit entfernten Formelspalten testete, war dies sehr schnell. So weit, ist es gut. Als ich dann versuchte, alle Skripte in derselben Tabelle auszuführen, wurde es schnell gestartet, aber dann langsamer, wenn mehr Spalten erstellt wurden (ich konnte sehen, dass die Spalten im Spaltenbereich erstellt wurden). Es schien schließlich einzufrieren (keine neuen Spalten in 5 Minuten erstellt). Hmmmm. Ich werde jetzt versuchen, es in kleinen Mengen zu tun, um zu sehen, ob das hilft.
Betreff: Das Kopieren vieler großer Formeln (neuronaler Netze) zwischen Datentabellen ist sehr, sehr langsamIch frage mich, ob die Formeln alle gleichzeitig neu berechnet werden und um die Prozessorzeit konkurrieren.
Betreff: Das Kopieren vieler großer Formeln (neuronaler Netze) zwischen Datentabellen ist sehr, sehr langsamIch habe versucht, Skript aus dem Formeldepot mit jeweils 100 Formeln auszuführen. Die ersten 100 gingen ziemlich schnell. Die zweiten 100 wurden langsamer und schienen anzuhalten.
Ich habe versucht, die Skripte für alle Formeln aus Formula Depot zu kopieren und in << Datenaktualisierung starten ... << Datenaktualisierung beenden.
Ich habe versucht, Suppress Eval (0) für Spalten von Formeln auszuführen, die mit Suppress Eval (1) kopiert wurden. Ich habe die Spalten durchlaufen, die in << Datenaktualisierung beginnen ... Spalte (i) Eval unterdrücken (0) ...... Warten (0) << Datenaktualisierung beenden. Ich habe 10 Spalten anprobiert. Hat nicht funktioniert.
Bisher hat nichts, was ich versucht habe, schneller funktioniert, als die Tabellen manuell mit aktivierter Formelauswertung zeilenweise zu verbinden, und das hat Tage gedauert .....
PS Gibt es eine Möglichkeit, ein laufendes Skript zu brechen?