2016-07-20 3 views
0

Мне интересно, есть ли простой способ проверить размер/память, необходимые для графика tensorflow, перед запуском сеанса tensorflow.Размер графа тензорного потока

Я ищу что-то, где я могу продолжать изменять параметры системы, которые определяют график, и может видеть, насколько велика (в памяти) диаграмма соответственно.

+0

Добро пожаловать на переполнение стека! Добро пожаловать в переполнение стека! Я отредактировал ваш вопрос, насколько я мог догадаться о вашей проблеме. Однако добавьте код и описание, чтобы увидеть больше людей со знанием предмета. Измените конкретное сообщение об ошибке, с которым вы сталкиваетесь, в случае необходимости определить конкретную проблему. Удачи! – manetsus

ответ

0

Я сделал что-то подобное, где мне захотелось увидеть количество параметров в моей модели.

vars = 0 
for v in tf.all_variables(): 
    vars += np.prod(v.get_shape().as_list()) 
print(vars) 

Теперь vars содержит сумму произведения размеров всех переменных на вашем графике. Если каждая переменная имеет тип tf.float32, вы можете умножить vars на 4, чтобы получить количество байтов, потребляемых всеми переменными. Это, однако, только нижняя граница, и некоторые дополнительные накладные расходы. Также я считаю, что вычисление градиентов требует большой памяти, так как для сохранения оборотов в каждой точке модели необходимо сохранить активацию.

+1

tf.all_variables() теперь является tf.global_variables() –

0

t Учитывая тензор:

var_sizes = [np.product(list(map(int, v.get_shape())))*v.dtype.size 
      for key in t.graph.get_all_collection_keys() for v in f.graph.get_collection_ref(key)] 
print(sum(var_sizes)/(1024**2), 'MB') 
Смежные вопросы