小编Gar*_*ary的帖子

使用子类模型时,model.summary()无法打印输出形状

这是创建keras模型的两种方法,但是output shapes两种方法的汇总结果不同。显然,前者可以打印更多信息,并且可以更轻松地检查网络的正确性。

import tensorflow as tf
from tensorflow.keras import Input, layers, Model

class subclass(Model):
    def __init__(self):
        super(subclass, self).__init__()
        self.conv = layers.Conv2D(28, 3, strides=1)

    def call(self, x):
        return self.conv(x)


def func_api():
    x = Input(shape=(24, 24, 3))
    y = layers.Conv2D(28, 3, strides=1)(x)
    return Model(inputs=[x], outputs=[y])

if __name__ == '__main__':
    func = func_api()
    func.summary()

    sub = subclass()
    sub.build(input_shape=(None, 24, 24, 3))
    sub.summary()
Run Code Online (Sandbox Code Playgroud)

输出?

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 24, 24, 3)         0         
_________________________________________________________________
conv2d (Conv2D) …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow tf.keras

8
推荐指数
4
解决办法
965
查看次数

标签 统计

keras ×1

python ×1

tensorflow ×1

tf.keras ×1