2017-03-21 3 views
0

Ich schreibe dieses Stück Code, um den Speicher von weights in Bytes genommen zu berechnen:Wie viele Bytes Speicher benötigen Gewichte?

import tensorflow as tf 
import sys 

n_input = 784 # MNIST data input (img shape: 28*28) 
n_classes = 10 # MNIST total classes (0-9 digits) 
# Weights & bias 
weights = tf.Variable(tf.random_normal([n_input, n_classes])) 
bias = tf.Variable(tf.random_normal([n_classes])) 


model = tf.global_variables_initializer() 
with tf.Session() as session: 
session.run(model) 
print(session.run(weights)) 

print(sys.getsizeof(session.run(weights))) 
#31472 

Das herauszufinden, die Größe des weights zu helfen scheint nicht. Kann jemand bitte den richtigen Ansatz vorschlagen?

Danke.

+0

Das scheint mir richtig zu sein, '784 * 10 * 4 = 31,360' (shape * 4 seit Standardtyp Float ist). Wahrscheinlich mit 112 Byte Overhead. Also gibt es 31,472 Byte. Was willst du sonst noch bekommen? – umutto

Antwort

1

Ich denke, die Menge der Bytes, die Sie erhalten, ist korrekt. Die Gewichte sind eine Matrix von 784 mal 10. Jeder Wert besteht aus vier Bytes. Dies ergibt 784 * 10 * 4 = 31360 Bytes. Sys sagt, dass es 31472 - 31360 = 112 Bytes mehr ist. Das sieht nach einem netten Overhead (28 4 Byte Werte) für mich aus!

Lassen Sie uns wissen, wenn Sie weitere Fragen haben!

Verwandte Themen