Есть ли простой способ получить что-то вроде Keras model.summary в Tensorflow?

Я работал с Keras и очень понравился model.summary() Он дает хороший обзор размера разных слоев и особенно обзор количества параметров, которые имеет модель.

Есть ли аналогичная функция в Tensorflow? Я ничего не мог найти в документации Stackoverflow или Tensorflow API.

Ответ 1

Я не видел ничего подобного model.summary() для тензорного потока... Однако, я не думаю, что вам это нужно. Существует TensorBoard, где вы можете легко проверить архитектуру NN.

enter image description here https://www.tensorflow.org/get_started/graph_viz

Ответ 2

Похоже, вы можете использовать Slim

Пример:

import numpy as np

from tensorflow.python.layers import base
import tensorflow as tf
import tensorflow.contrib.slim as slim

x = np.zeros((1,4,4,3))
x_tf = tf.convert_to_tensor(x, np.float32)
z_tf = tf.layers.conv2d(x_tf, filters=32, kernel_size=(3,3))

def model_summary():
    model_vars = tf.trainable_variables()
    slim.model_analyzer.analyze_vars(model_vars, print_info=True)

model_summary()

Выход:

---------
Variables: name (type shape) [size]
---------
conv2d/kernel:0 (float32_ref 3x3x3x32) [864, bytes: 3456]
conv2d/bias:0 (float32_ref 32) [32, bytes: 128]
Total size of variables: 896
Total bytes of variables: 3584

Также вот пример пользовательской функции для печати резюме модели: https://github.com/NVlabs/stylegan/blob/f3a044621e2ab802d40940c16cc86042ae87e100/dnnlib/tflib/network.py#L507

Если у вас уже есть .pb tensorflow модели вы можете использовать: inspect_pb.py печатать модели данные или использовать tensorflow summarize_graph инструмент с --print_structure флагом.

Ответ 3

Вы можете использовать keras с бэкэндоном tensorflow, чтобы получить наилучшие функции как keras, так и тензорного потока.

Ответ 4

Керас имеет print_summary(). Этот метод фактически является внутренним вызовом сводки модели TensorFlow. Как определено в .../tensorflow/python/keras/engine/network.py.

enter image description here