2017-03-08 7 views
0

Ich habe 2 Matrices von Formenauf Matrixmultiplikation in Tensorflow

a: [1, 3, 3, 512, 512] 
    b: [1, 14, 14, 3, 3, 512,1] 

Das Ausgangssignal erhalten wird durch

output = tf.multiply(a,b) 

und Form hat

output: [1, 14, 14, 3, 3, 512, 512] 

Dieser Vorgang allein benötigt etwa 5 GB GPU-Speicher. Ich würde gerne wissen, ob es irgendeinen Weg gibt, diesen Speicherverbrauch zu reduzieren (da ich in Zukunft viel größere Matrizen für dieselbe Operation haben werde).

Ich versuchte einen Workaround, indem Sie sowohl a als auch b in halbe Genauigkeit umwandelten. Dies half auch nicht bei der Reduzierung der Speicherauslastung.

Es wäre toll zu wissen, ob es irgendwelche Tricks in Tensorflow gibt, die ich dafür nutzen kann.

Danke!

Antwort

0

Sie können tf.GPUOption festlegen, um die GPU-Speichernutzung zu steuern. Standardmäßig belegt tf viel GPU-Speicher, selbst wenn Sie kein Berechnungsdiagramm erstellen.

Weitere Informationen finden Sie unter https://www.tensorflow.org/api_docs/python/tf/GPUOptions. In der Regel möchten Sie möglicherweise die Eigenschaft allow_growth oder per_process_gpu_memory_fraction verwenden.

+0

Ich möchte die Speichernutzung des Multiplikationsprozesses reduzieren. Ich verwende bereits diese beiden Eigenschaften, die Sie erwähnt haben. – viggie

+0

Wenn Ihre Matrizen sehr groß sind, sollten Sie diese Matrizen an die CPU anpinnen, um den Speicherbedarf des Grafikprozessors zu reduzieren. – soloice

+0

Vielleicht scheint das der einzige Hack zu sein, obwohl man die Geschwindigkeit – viggie