打印出网络架构中每层的形状

use*_*609 4 theano deep-learning keras tensorflow

在Keras,我们可以如下定义网络.有没有办法在每一层后输出形状.例如,我想打印出inputs线条定义后的形状inputs,然后打印出conv1线条定义后的形状conv1等.

inputs = Input((1, img_rows, img_cols))
conv1 = Convolution2D(64, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(inputs)
conv1 = Convolution2D(64, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(conv1)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)

conv2 = Convolution2D(128, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(pool1)
conv2 = Convolution2D(128, 3, 3, activation='relu', init='lecun_uniform', W_constraint=maxnorm(3), border_mode='same')(conv2)
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
Run Code Online (Sandbox Code Playgroud)

dao*_*ker 9

只是使用model.summary(),它给你漂亮的印刷.


Avi*_*pta 0

如果一个层只有一个节点(即如果它不是共享层),则可以通过以下方式获取其输入张量、输出张量、输入形状和输出形状:layer.input_shape

from keras.utils.layer_utils import layer_from_config

config = layer.get_config()
layer = layer_from_config(config)
Run Code Online (Sandbox Code Playgroud)

来源: https: //keras.io/layers/about-keras-layers/

这可能是最简单的方法:

model.layers[layer_of_interest_index].output_shape
Run Code Online (Sandbox Code Playgroud)