Python 打印Tensorflow网络中每个层的层形状摘要

Python 打印Tensorflow网络中每个层的层形状摘要,python,tensorflow,Python,Tensorflow,我喜欢在将输入图像张量输入到网络后,在Tensorflow网络上打印每一层的形状。 在keras,可以按照或model.summary()中的讨论进行 我的网络如下 def basenet(inputs, fatness = 64, dilation = True): """ backbone net of vgg16 """ # End_points collect relevant activations for external use. end_p

我喜欢在将输入图像张量输入到网络后,在Tensorflow网络上打印每一层的形状。 在keras,可以按照或model.summary()中的讨论进行

我的网络如下

def basenet(inputs, fatness = 64, dilation = True):
    """
    backbone net of vgg16
    """
    # End_points collect relevant activations for external use.
    end_points = {}
    # Original VGG-16 blocks.
    with slim.arg_scope([slim.conv2d, slim.max_pool2d], padding='SAME'):
        # Block1
        net = slim.repeat(inputs, 2, slim.conv2d, fatness, [3, 3], scope='conv1')
        end_points['conv1_2'] = net
        net = slim.max_pool2d(net, [2, 2], scope='pool1')
        end_points['pool1'] = net


        # Block 2.
        net = slim.repeat(net, 2, slim.conv2d, fatness * 2, [3, 3], scope='conv2')
        end_points['conv2_2'] = net
        net = slim.max_pool2d(net, [2, 2], scope='pool2')
        end_points['pool2'] = net


        # Block 3.
        net = slim.repeat(net, 3, slim.conv2d, fatness * 4, [3, 3], scope='conv3')
        end_points['conv3_3'] = net
        net = slim.max_pool2d(net, [2, 2], scope='pool3')
        end_points['pool3'] = net

        # Block 4.
        net = slim.repeat(net, 3, slim.conv2d, fatness * 8, [3, 3], scope='conv4')
        end_points['conv4_3'] = net
        net = slim.max_pool2d(net, [2, 2], scope='pool4')
        end_points['pool4'] = net

        # Block 5.
        net = slim.repeat(net, 3, slim.conv2d, fatness * 8, [3, 3], scope='conv5')
        end_points['conv5_3'] = net
        net = slim.max_pool2d(net, [3, 3], 1, scope='pool5')
        end_points['pool5'] = net

        # fc6 as conv, dilation is added
        if dilation:
            net = slim.conv2d(net, fatness * 16, [3, 3], rate=6, scope='fc6')
        else:
            net = slim.conv2d(net, fatness * 16, [3, 3], scope='fc6')
        end_points['fc6'] = net

        # fc7 as conv
        net = slim.conv2d(net, fatness * 16, [1, 1], scope='fc7')
        end_points['fc7'] = net
        #model_summary()
        #from keras.utils.visualize_util import plot
        #plot(model, to_file='model.png')
    return net, end_points; 
我用Tensorboard查看了eventfile,它与其他活动有复杂的图形,我看不到图层尺寸。我只喜欢看图层形状


如何使用Tensorflow。

也许可以在这里尝试解决方案:谢谢,我以前已经找到了。使用slim进行讨论对于计算变量数非常有用。但不是层大小。我用了一种有点乏味的方法。Tensorflow应该有一些像样的api,而不是使用Tensorboard。我所做的是在网络中运行,并逐层打印图层形状。