是否有一种简单的方法可以在Tensorflow中获得类似Keras model.summary的内容?

时间:2017-10-04 08:27:55

标签: tensorflow keras

我一直在和Keras合作,真的很喜欢model.summary() 它可以很好地概述不同层的大小,尤其是模型所具有的参数数量的概述。

Tensorflow中是否有类似的功能?我在Stackoverflow或Tensorflow API文档中找不到任何内容。

5 个答案:

答案 0 :(得分:28)

看起来您可以使用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

如果您已经拥有.pb张量流模型,则可以使用:inspect_pb.py打印模型信息。

答案 1 :(得分:3)

您可以将keras与tensorflow后端一起使用,以获得keras或tensorflow的最佳功能。

答案 2 :(得分:3)

我还没有看到像tens.summary()那样的张量流...但是,我认为你不需要它。有一个TensorBoard,您可以在其中轻松检查NN的架构。

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

答案 3 :(得分:0)

Keras有print_summary()。 该方法实际上是TensorFlow模型摘要在内部调用的方法。 根据{{​​1}}文件中的定义。

enter image description here

答案 4 :(得分:0)

对于那些在Tensorflow 1.x后时代登陆这里的人们...

对于Tensorflow 2.0,建议所有模型都使用Keras Model类,因此: