我一直在和Keras合作,真的很喜欢model.summary()
它可以很好地概述不同层的大小,尤其是模型所具有的参数数量的概述。
Tensorflow中是否有类似的功能?我在Stackoverflow或Tensorflow API文档中找不到任何内容。
答案 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的架构。
答案 3 :(得分:0)
Keras有print_summary()
。
该方法实际上是TensorFlow模型摘要在内部调用的方法。
根据{{1}}文件中的定义。
答案 4 :(得分:0)
对于那些在Tensorflow 1.x后时代登陆这里的人们...
对于Tensorflow 2.0,建议所有模型都使用Keras Model类,因此: