Beim Beherrschen von ML, CNN, NN in Python stößt ein Anfänger fast immer auf das Problem der Rechengeschwindigkeit und manchmal des RAM-Mangels.
Dies macht sich insbesondere bei großen Datenbanken bemerkbar, die größer als 50% des freien Arbeitsspeichers sind. Gedanken über den Kauf von anständigem Eisen sind nur eine der möglichen Lösungen.
Eine andere Möglichkeit, eine der Funktionen in Python zu verwenden, besteht darin, die Funktion selbst zu durchlaufen.
Ein einfaches und anschauliches Beispiel. Angenommen, Sie müssen eine Anzahl von Zahlen von 1 bis 10 bei 200.000 Grad erstellen und deren Summe addieren. Als Ergebnis sollten Sie eine Zahl erhalten, die 200.000 Zeichen lang ist.
es ist 2 mal mehr als google )
Hier ist ein einfacher Code für eine solche Funktion:
from time import time
Infolgedessen erhalten wir einen ziemlich "kostspieligen" Vorgang für Ihren Computer, und zum Beispiel dauert es mehr als 13 ms für meinen. Aber was ist, wenn es viele solcher Operationen geben kann? Dann wird alles kompliziert und vielleicht haben Sie einfach nicht genug RAM.
Sie können jedoch kniffliger sein und genau dieselbe Funktion verwenden, indem Sie Ihre Variablen iterieren.
Hier ist der Code für eine so einfache Lösung mit derselben Funktion:
from time import time
Zeit auf meinem Computer verbracht

Die Differenz beträgt 0,13 - 0,024 =
0,106 ms!
Wenn man dieser riesigen Zahl einfach auf die übliche Weise 1 hinzufügt, dauert es länger, bis man sich auf 200.000 Grad erhöht. Das heißt, die Vorteile dieser Methode liegen auf der Hand.
def add_one(x): total_3 = 0 start = time() s = x + 1 end = time() total_3 += end - start print('Time to do add 1 to BIG number: {} \n'.format(total_3)) return print('Difference in time {}\n'.format(round(total_2 - total_3 ,3))) add_one(d) print('The size of the number {}!!!'.format(len(str(d))))
Das Ergebnis ist folgendes:

Warum so? Soweit ich weiß, erstellt Python beim Durchlaufen einer Funktion keine temporären Objekte im Speicher, was wiederum den Berechnungsprozess erheblich beschleunigt. Wenn Sie die Funktion daher auf diese Weise umschreiben, sparen Sie Zeit und Nerven.
Insgesamt - Für komplexe Berechnungen mit einer begrenzten RAM-Größe ist es besser, die Iteration über eine Funktion zu verwenden, als nur die Funktionen selbst.
Ich hoffe, dies hilft jemandem, keine wertvollen Minuten zu verlieren oder nicht für zusätzliche, schnell alternde Hardware aufzuwenden.
Inspiriert von einem Vortrag