Ich habe einen Satz von n Vektoren in der 3 x n Matrix z
gespeichert. Ich finde das äußere Produkt mit np.einsum
. Als ich timed es mit:Was bedeutet "ein Zwischenergebnis wird zwischengespeichert"?
%timeit v=np.einsum('i...,j...->ij...',z,z)
bekam ich das Ergebnis:
The slowest run took 7.23 times longer than the fastest. This could mean that an
intermediate result is being cached
100000 loops, best of 3: 2.9 µs per loop
Was hier geschieht, und kann vermieden werden? Die beste 3 ist 2.9us, aber die langsamste vielleicht typischer.
Versuchen Sie zu Testzwecken, die Größe 'n' zu erhöhen, dies reduziert den Bruchteil von' z', der im Cache Ihrer CPU gespeichert ist, und die Meldung sollte irgendwann verschwinden –